
/*
This file is part of the Stargate project, Copyright Stargate Team

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 3 of the License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
*/

#include <pthread.h>

#include "audiodsp/lib/lmalloc.h"
#include "audiodsp/modules/oscillator/wavetables.h"

#define plain_saw_count 1200

SGFLT plain_saw_array[plain_saw_count]  = {
-0.007839f, -0.006476f, -0.005113f, -0.003750f, -0.002388f, -0.001025f, 0.000338f, 0.001701f, 0.003064f, 0.004427f, 0.005789f, 0.007152f,
0.008515f, 0.009878f, 0.011241f, 0.012604f, 0.013966f, 0.015329f, 0.016692f, 0.018055f, 0.019418f, 0.020780f, 0.022143f, 0.023506f,
0.024869f, 0.026232f, 0.027595f, 0.028957f, 0.030320f, 0.031683f, 0.033046f, 0.034409f, 0.035772f, 0.037134f, 0.038497f, 0.039860f,
0.041223f, 0.042586f, 0.043949f, 0.045311f, 0.046674f, 0.048037f, 0.049400f, 0.050763f, 0.052125f, 0.053488f, 0.054851f, 0.056214f,
0.057577f, 0.058940f, 0.060302f, 0.061665f, 0.063028f, 0.064391f, 0.065754f, 0.067117f, 0.068479f, 0.069842f, 0.071205f, 0.072568f,
0.073931f, 0.075294f, 0.076656f, 0.078019f, 0.079382f, 0.080745f, 0.082108f, 0.083470f, 0.084833f, 0.086196f, 0.087559f, 0.088922f,
0.090285f, 0.091647f, 0.093010f, 0.094373f, 0.095736f, 0.097099f, 0.098462f, 0.099824f, 0.101187f, 0.102550f, 0.103913f, 0.105276f,
0.106639f, 0.108001f, 0.109364f, 0.110727f, 0.112090f, 0.113453f, 0.114816f, 0.116178f, 0.117541f, 0.118904f, 0.120267f, 0.121630f,
0.122992f, 0.124355f, 0.125718f, 0.127081f, 0.128444f, 0.129807f, 0.131169f, 0.132532f, 0.133895f, 0.135258f, 0.136621f, 0.137984f,
0.139346f, 0.140709f, 0.142072f, 0.143435f, 0.144798f, 0.146161f, 0.147523f, 0.148886f, 0.150249f, 0.151612f, 0.152975f, 0.154337f,
0.155700f, 0.157063f, 0.158426f, 0.159789f, 0.161152f, 0.162514f, 0.163877f, 0.165240f, 0.166603f, 0.167966f, 0.169329f, 0.170691f,
0.172054f, 0.173417f, 0.174780f, 0.176143f, 0.177506f, 0.178868f, 0.180231f, 0.181594f, 0.182957f, 0.184320f, 0.185682f, 0.187045f,
0.188408f, 0.189771f, 0.191134f, 0.192497f, 0.193859f, 0.195222f, 0.196585f, 0.197948f, 0.199311f, 0.200674f, 0.202036f, 0.203399f,
0.204762f, 0.206125f, 0.207488f, 0.208851f, 0.210213f, 0.211576f, 0.212939f, 0.214302f, 0.215665f, 0.217028f, 0.218390f, 0.219753f,
0.221116f, 0.222479f, 0.223842f, 0.225204f, 0.226567f, 0.227930f, 0.229293f, 0.230656f, 0.232019f, 0.233381f, 0.234744f, 0.236107f,
0.237470f, 0.238833f, 0.240196f, 0.241558f, 0.242921f, 0.244284f, 0.245647f, 0.247010f, 0.248373f, 0.249735f, 0.251098f, 0.252461f,
0.253824f, 0.255187f, 0.256550f, 0.257912f, 0.259275f, 0.260638f, 0.262001f, 0.263364f, 0.264726f, 0.266089f, 0.267452f, 0.268815f,
0.270178f, 0.271541f, 0.272903f, 0.274266f, 0.275629f, 0.276992f, 0.278355f, 0.279718f, 0.281080f, 0.282443f, 0.283806f, 0.285169f,
0.286532f, 0.287895f, 0.289257f, 0.290620f, 0.291983f, 0.293346f, 0.294709f, 0.296071f, 0.297434f, 0.298797f, 0.300160f, 0.301523f,
0.302886f, 0.304248f, 0.305611f, 0.306974f, 0.308337f, 0.309700f, 0.311063f, 0.312425f, 0.313788f, 0.315151f, 0.316514f, 0.317877f,
0.319240f, 0.320602f, 0.321965f, 0.323328f, 0.324691f, 0.326054f, 0.327416f, 0.328779f, 0.330142f, 0.331505f, 0.332868f, 0.334231f,
0.335593f, 0.336956f, 0.338319f, 0.339682f, 0.341045f, 0.342408f, 0.343770f, 0.345133f, 0.346496f, 0.347859f, 0.349222f, 0.350585f,
0.351947f, 0.353310f, 0.354673f, 0.356036f, 0.357399f, 0.358761f, 0.360124f, 0.361487f, 0.362850f, 0.364213f, 0.365576f, 0.366938f,
0.368301f, 0.369664f, 0.371027f, 0.372390f, 0.373753f, 0.375115f, 0.376478f, 0.377841f, 0.379204f, 0.380567f, 0.381930f, 0.383292f,
0.384655f, 0.386018f, 0.387381f, 0.388744f, 0.390107f, 0.391469f, 0.392832f, 0.394195f, 0.395558f, 0.396921f, 0.398283f, 0.399646f,
0.401009f, 0.402372f, 0.403735f, 0.405098f, 0.406460f, 0.407823f, 0.409186f, 0.410549f, 0.411912f, 0.413275f, 0.414637f, 0.416000f,
0.417363f, 0.418726f, 0.420089f, 0.421452f, 0.422814f, 0.424177f, 0.425540f, 0.426903f, 0.428266f, 0.429628f, 0.430991f, 0.432354f,
0.433717f, 0.435080f, 0.436443f, 0.437805f, 0.439168f, 0.440531f, 0.441894f, 0.443257f, 0.444620f, 0.445982f, 0.447345f, 0.448708f,
0.450071f, 0.451434f, 0.452797f, 0.454159f, 0.455522f, 0.456885f, 0.458248f, 0.459611f, 0.460973f, 0.462336f, 0.463699f, 0.465062f,
0.466425f, 0.467788f, 0.469150f, 0.470513f, 0.471876f, 0.473239f, 0.474602f, 0.475965f, 0.477327f, 0.478690f, 0.480053f, 0.481416f,
0.482779f, 0.484142f, 0.485504f, 0.486867f, 0.488230f, 0.489593f, 0.490956f, 0.492318f, 0.493681f, 0.495044f, 0.496407f, 0.497770f,
0.499133f, 0.500495f, 0.501858f, 0.503221f, 0.504584f, 0.505947f, 0.507310f, 0.508672f, 0.510035f, 0.511398f, 0.512761f, 0.514124f,
0.515487f, 0.516849f, 0.518212f, 0.519575f, 0.520938f, 0.522301f, 0.523664f, 0.525026f, 0.526389f, 0.527752f, 0.529115f, 0.530478f,
0.531840f, 0.533203f, 0.534566f, 0.535929f, 0.537292f, 0.538655f, 0.540017f, 0.541380f, 0.542743f, 0.544106f, 0.545469f, 0.546832f,
0.548194f, 0.549557f, 0.550920f, 0.552283f, 0.553646f, 0.555009f, 0.556371f, 0.557734f, 0.559097f, 0.560460f, 0.561823f, 0.563186f,
0.564548f, 0.565911f, 0.567274f, 0.568637f, 0.570000f, 0.571362f, 0.572725f, 0.574088f, 0.575451f, 0.576814f, 0.578177f, 0.579539f,
0.580902f, 0.582265f, 0.583628f, 0.584991f, 0.586354f, 0.587716f, 0.589079f, 0.590442f, 0.591805f, 0.593168f, 0.594531f, 0.595893f,
0.597256f, 0.598619f, 0.599982f, 0.601345f, 0.602707f, 0.604070f, 0.605433f, 0.606796f, 0.608159f, 0.609522f, 0.610884f, 0.612247f,
0.613610f, 0.614973f, 0.616336f, 0.617699f, 0.619061f, 0.620424f, 0.621787f, 0.623150f, 0.624513f, 0.625876f, 0.627238f, 0.628601f,
0.629964f, 0.631327f, 0.632690f, 0.634052f, 0.635415f, 0.636778f, 0.638141f, 0.639504f, 0.640867f, 0.642229f, 0.643592f, 0.644955f,
0.646318f, 0.647681f, 0.649044f, 0.650406f, 0.651769f, 0.653132f, 0.654495f, 0.655858f, 0.657221f, 0.658583f, 0.659946f, 0.661309f,
0.662672f, 0.664035f, 0.665397f, 0.666760f, 0.668123f, 0.669486f, 0.670849f, 0.672212f, 0.673574f, 0.674937f, 0.676300f, 0.677663f,
0.679026f, 0.680389f, 0.681751f, 0.683114f, 0.684477f, 0.685840f, 0.687203f, 0.688566f, 0.689928f, 0.691291f, 0.692654f, 0.694017f,
0.695380f, 0.696742f, 0.698105f, 0.699468f, 0.700831f, 0.702194f, 0.703557f, 0.704919f, 0.706282f, 0.707645f, 0.709008f, 0.710371f,
0.711734f, 0.713096f, 0.714459f, 0.715822f, 0.717185f, 0.718548f, 0.719911f, 0.721273f, 0.722636f, 0.723999f, 0.725362f, 0.726725f,
0.728088f, 0.729450f, 0.730813f, 0.732176f, 0.733539f, 0.734902f, 0.736264f, 0.737627f, 0.738990f, 0.740353f, 0.741716f, 0.743079f,
0.744441f, 0.745804f, 0.747167f, 0.748530f, 0.749893f, 0.751256f, 0.752618f, 0.753981f, 0.755344f, 0.756707f, 0.758070f, 0.759433f,
0.760795f, 0.762158f, 0.763521f, 0.764884f, 0.766247f, 0.767609f, 0.768972f, 0.770335f, 0.771698f, 0.773061f, 0.774424f, 0.775786f,
0.777149f, 0.778512f, 0.779875f, 0.781238f, 0.782601f, 0.783963f, 0.785326f, 0.786689f, 0.788052f, 0.789415f, 0.790778f, 0.792140f,
0.793503f, 0.794866f, 0.796229f, 0.797592f, 0.798954f, 0.800317f, 0.801680f, 0.803043f, 0.804406f, 0.805769f, 0.807131f, 0.756202f,
0.883257f, 0.990000f, 0.932145f, 0.698990f, 0.360284f, 0.001837f, -0.312285f, -0.550588f, -0.708941f, -0.799722f, -0.841694f, -0.853161f,
-0.848572f, -0.837657f, -0.826006f, -0.816200f, -0.808961f, -0.804049f, -0.800866f, -0.798791f, -0.797325f, -0.796130f, -0.795008f, -0.793863f,
-0.792660f, -0.791399f, -0.790091f, -0.788753f, -0.787397f, -0.786032f, -0.784665f, -0.783297f, -0.781931f, -0.780565f, -0.779201f, -0.777837f,
-0.776474f, -0.775111f, -0.773749f, -0.772386f, -0.771023f, -0.769660f, -0.768298f, -0.766935f, -0.765572f, -0.764209f, -0.762846f, -0.761483f,
-0.760121f, -0.758758f, -0.757395f, -0.756032f, -0.754669f, -0.753307f, -0.751944f, -0.750581f, -0.749218f, -0.747855f, -0.746492f, -0.745130f,
-0.743767f, -0.742404f, -0.741041f, -0.739678f, -0.738315f, -0.736953f, -0.735590f, -0.734227f, -0.732864f, -0.731501f, -0.730138f, -0.728776f,
-0.727413f, -0.726050f, -0.724687f, -0.723324f, -0.721961f, -0.720599f, -0.719236f, -0.717873f, -0.716510f, -0.715147f, -0.713785f, -0.712422f,
-0.711059f, -0.709696f, -0.708333f, -0.706970f, -0.705608f, -0.704245f, -0.702882f, -0.701519f, -0.700156f, -0.698793f, -0.697431f, -0.696068f,
-0.694705f, -0.693342f, -0.691979f, -0.690616f, -0.689254f, -0.687891f, -0.686528f, -0.685165f, -0.683802f, -0.682440f, -0.681077f, -0.679714f,
-0.678351f, -0.676988f, -0.675625f, -0.674263f, -0.672900f, -0.671537f, -0.670174f, -0.668811f, -0.667448f, -0.666086f, -0.664723f, -0.663360f,
-0.661997f, -0.660634f, -0.659271f, -0.657909f, -0.656546f, -0.655183f, -0.653820f, -0.652457f, -0.651094f, -0.649732f, -0.648369f, -0.647006f,
-0.645643f, -0.644280f, -0.642918f, -0.641555f, -0.640192f, -0.638829f, -0.637466f, -0.636103f, -0.634741f, -0.633378f, -0.632015f, -0.630652f,
-0.629289f, -0.627926f, -0.626564f, -0.625201f, -0.623838f, -0.622475f, -0.621112f, -0.619749f, -0.618387f, -0.617024f, -0.615661f, -0.614298f,
-0.612935f, -0.611573f, -0.610210f, -0.608847f, -0.607484f, -0.606121f, -0.604758f, -0.603396f, -0.602033f, -0.600670f, -0.599307f, -0.597944f,
-0.596581f, -0.595219f, -0.593856f, -0.592493f, -0.591130f, -0.589767f, -0.588404f, -0.587042f, -0.585679f, -0.584316f, -0.582953f, -0.581590f,
-0.580227f, -0.578865f, -0.577502f, -0.576139f, -0.574776f, -0.573413f, -0.572051f, -0.570688f, -0.569325f, -0.567962f, -0.566599f, -0.565236f,
-0.563874f, -0.562511f, -0.561148f, -0.559785f, -0.558422f, -0.557059f, -0.555697f, -0.554334f, -0.552971f, -0.551608f, -0.550245f, -0.548882f,
-0.547520f, -0.546157f, -0.544794f, -0.543431f, -0.542068f, -0.540706f, -0.539343f, -0.537980f, -0.536617f, -0.535254f, -0.533891f, -0.532529f,
-0.531166f, -0.529803f, -0.528440f, -0.527077f, -0.525714f, -0.524352f, -0.522989f, -0.521626f, -0.520263f, -0.518900f, -0.517537f, -0.516175f,
-0.514812f, -0.513449f, -0.512086f, -0.510723f, -0.509360f, -0.507998f, -0.506635f, -0.505272f, -0.503909f, -0.502546f, -0.501184f, -0.499821f,
-0.498458f, -0.497095f, -0.495732f, -0.494369f, -0.493007f, -0.491644f, -0.490281f, -0.488918f, -0.487555f, -0.486192f, -0.484830f, -0.483467f,
-0.482104f, -0.480741f, -0.479378f, -0.478015f, -0.476653f, -0.475290f, -0.473927f, -0.472564f, -0.471201f, -0.469839f, -0.468476f, -0.467113f,
-0.465750f, -0.464387f, -0.463024f, -0.461662f, -0.460299f, -0.458936f, -0.457573f, -0.456210f, -0.454847f, -0.453485f, -0.452122f, -0.450759f,
-0.449396f, -0.448033f, -0.446670f, -0.445308f, -0.443945f, -0.442582f, -0.441219f, -0.439856f, -0.438494f, -0.437131f, -0.435768f, -0.434405f,
-0.433042f, -0.431679f, -0.430317f, -0.428954f, -0.427591f, -0.426228f, -0.424865f, -0.423502f, -0.422140f, -0.420777f, -0.419414f, -0.418051f,
-0.416688f, -0.415325f, -0.413963f, -0.412600f, -0.411237f, -0.409874f, -0.408511f, -0.407149f, -0.405786f, -0.404423f, -0.403060f, -0.401697f,
-0.400334f, -0.398972f, -0.397609f, -0.396246f, -0.394883f, -0.393520f, -0.392157f, -0.390795f, -0.389432f, -0.388069f, -0.386706f, -0.385343f,
-0.383980f, -0.382618f, -0.381255f, -0.379892f, -0.378529f, -0.377166f, -0.375804f, -0.374441f, -0.373078f, -0.371715f, -0.370352f, -0.368989f,
-0.367627f, -0.366264f, -0.364901f, -0.363538f, -0.362175f, -0.360812f, -0.359450f, -0.358087f, -0.356724f, -0.355361f, -0.353998f, -0.352635f,
-0.351273f, -0.349910f, -0.348547f, -0.347184f, -0.345821f, -0.344458f, -0.343096f, -0.341733f, -0.340370f, -0.339007f, -0.337644f, -0.336282f,
-0.334919f, -0.333556f, -0.332193f, -0.330830f, -0.329467f, -0.328105f, -0.326742f, -0.325379f, -0.324016f, -0.322653f, -0.321290f, -0.319928f,
-0.318565f, -0.317202f, -0.315839f, -0.314476f, -0.313113f, -0.311751f, -0.310388f, -0.309025f, -0.307662f, -0.306299f, -0.304936f, -0.303574f,
-0.302211f, -0.300848f, -0.299485f, -0.298122f, -0.296760f, -0.295397f, -0.294034f, -0.292671f, -0.291308f, -0.289945f, -0.288583f, -0.287220f,
-0.285857f, -0.284494f, -0.283131f, -0.281768f, -0.280406f, -0.279043f, -0.277680f, -0.276317f, -0.274954f, -0.273591f, -0.272229f, -0.270866f,
-0.269503f, -0.268140f, -0.266777f, -0.265415f, -0.264052f, -0.262689f, -0.261326f, -0.259963f, -0.258600f, -0.257238f, -0.255875f, -0.254512f,
-0.253149f, -0.251786f, -0.250423f, -0.249061f, -0.247698f, -0.246335f, -0.244972f, -0.243609f, -0.242246f, -0.240884f, -0.239521f, -0.238158f,
-0.236795f, -0.235432f, -0.234070f, -0.232707f, -0.231344f, -0.229981f, -0.228618f, -0.227255f, -0.225893f, -0.224530f, -0.223167f, -0.221804f,
-0.220441f, -0.219078f, -0.217716f, -0.216353f, -0.214990f, -0.213627f, -0.212264f, -0.210901f, -0.209539f, -0.208176f, -0.206813f, -0.205450f,
-0.204087f, -0.202725f, -0.201362f, -0.199999f, -0.198636f, -0.197273f, -0.195910f, -0.194548f, -0.193185f, -0.191822f, -0.190459f, -0.189096f,
-0.187733f, -0.186371f, -0.185008f, -0.183645f, -0.182282f, -0.180919f, -0.179556f, -0.178194f, -0.176831f, -0.175468f, -0.174105f, -0.172742f,
-0.171380f, -0.170017f, -0.168654f, -0.167291f, -0.165928f, -0.164565f, -0.163203f, -0.161840f, -0.160477f, -0.159114f, -0.157751f, -0.156388f,
-0.155026f, -0.153663f, -0.152300f, -0.150937f, -0.149574f, -0.148211f, -0.146849f, -0.145486f, -0.144123f, -0.142760f, -0.141397f, -0.140034f,
-0.138672f, -0.137309f, -0.135946f, -0.134583f, -0.133220f, -0.131858f, -0.130495f, -0.129132f, -0.127769f, -0.126406f, -0.125043f, -0.123681f,
-0.122318f, -0.120955f, -0.119592f, -0.118229f, -0.116866f, -0.115504f, -0.114141f, -0.112778f, -0.111415f, -0.110052f, -0.108689f, -0.107327f,
-0.105964f, -0.104601f, -0.103238f, -0.101875f, -0.100513f, -0.099150f, -0.097787f, -0.096424f, -0.095061f, -0.093698f, -0.092336f, -0.090973f,
-0.089610f, -0.088247f, -0.086884f, -0.085521f, -0.084159f, -0.082796f, -0.081433f, -0.080070f, -0.078707f, -0.077344f, -0.075982f, -0.074619f,
-0.073256f, -0.071893f, -0.070530f, -0.069168f, -0.067805f, -0.066442f, -0.065079f, -0.063716f, -0.062353f, -0.060991f, -0.059628f, -0.058265f,
-0.056902f, -0.055539f, -0.054176f, -0.052814f, -0.051451f, -0.050088f, -0.048725f, -0.047362f, -0.045999f, -0.044637f, -0.043274f, -0.041911f,
-0.040548f, -0.039185f, -0.037822f, -0.036460f, -0.035097f, -0.033734f, -0.032371f, -0.031008f, -0.029646f, -0.028283f, -0.026920f, -0.025557f,
-0.024194f, -0.022831f, -0.021469f, -0.020106f, -0.018743f, -0.017380f, -0.016017f, -0.014654f, -0.013292f, -0.011929f, -0.010566f, -0.009203f,
};


#define superbsaw_count 1200

SGFLT superbsaw_array[superbsaw_count]  = {
0.404955f, 0.404228f, 0.403491f, 0.402746f, 0.401992f, 0.401230f, 0.400459f, 0.399679f, 0.398891f, 0.398095f, 0.397290f, 0.396477f,
0.395655f, 0.394825f, 0.393987f, 0.393141f, 0.392287f, 0.391425f, 0.390554f, 0.389676f, 0.388790f, 0.387896f, 0.386994f, 0.386084f,
0.385167f, 0.384242f, 0.383309f, 0.382369f, 0.381421f, 0.380465f, 0.379503f, 0.378533f, 0.377555f, 0.376570f, 0.375578f, 0.374579f,
0.373573f, 0.372560f, 0.371539f, 0.370512f, 0.369477f, 0.368436f, 0.367388f, 0.366333f, 0.365271f, 0.364203f, 0.363128f, 0.362046f,
0.360958f, 0.359864f, 0.358763f, 0.357655f, 0.356541f, 0.355421f, 0.354295f, 0.353162f, 0.352023f, 0.350879f, 0.349728f, 0.348571f,
0.347408f, 0.346239f, 0.345065f, 0.343884f, 0.342698f, 0.341506f, 0.340309f, 0.339106f, 0.337897f, 0.336683f, 0.335463f, 0.334238f,
0.333008f, 0.331772f, 0.330531f, 0.329285f, 0.328034f, 0.326777f, 0.325516f, 0.324249f, 0.322978f, 0.321701f, 0.320420f, 0.319134f,
0.317843f, 0.316548f, 0.315248f, 0.313943f, 0.312634f, 0.311320f, 0.310002f, 0.308679f, 0.307352f, 0.306021f, 0.304685f, 0.303345f,
0.302001f, 0.300653f, 0.299301f, 0.297944f, 0.296584f, 0.295220f, 0.293852f, 0.292480f, 0.291105f, 0.289726f, 0.288343f, 0.286956f,
0.285566f, 0.284172f, 0.282775f, 0.281374f, 0.279970f, 0.278563f, 0.277152f, 0.275738f, 0.274321f, 0.272901f, 0.271478f, 0.270052f,
0.268622f, 0.267190f, 0.265755f, 0.264317f, 0.262876f, 0.261432f, 0.259986f, 0.258537f, 0.257086f, 0.255631f, 0.254175f, 0.252716f,
0.251254f, 0.249790f, 0.248324f, 0.246855f, 0.245384f, 0.243911f, 0.242436f, 0.240959f, 0.239480f, 0.237999f, 0.236515f, 0.235030f,
0.233543f, 0.232054f, 0.230564f, 0.229071f, 0.227577f, 0.226082f, 0.224584f, 0.223085f, 0.221585f, 0.220083f, 0.218580f, 0.217076f,
0.215570f, 0.214063f, 0.212554f, 0.211045f, 0.209534f, 0.208022f, 0.206510f, 0.204996f, 0.203481f, 0.201965f, 0.200449f, 0.198931f,
0.197413f, 0.195894f, 0.194374f, 0.192854f, 0.191333f, 0.189812f, 0.188290f, 0.186767f, 0.185244f, 0.183721f, 0.182197f, 0.180673f,
0.179149f, 0.177625f, 0.176100f, 0.174575f, 0.173050f, 0.171525f, 0.170000f, 0.168475f, 0.166950f, 0.165425f, 0.163901f, 0.162376f,
0.160852f, 0.159328f, 0.157804f, 0.156281f, 0.154758f, 0.153236f, 0.151714f, 0.150192f, 0.148671f, 0.147151f, 0.145631f, 0.144112f,
0.142594f, 0.141076f, 0.139559f, 0.138043f, 0.136528f, 0.135014f, 0.133501f, 0.131988f, 0.130477f, 0.128967f, 0.127458f, 0.125949f,
0.124443f, 0.122937f, 0.121433f, 0.119929f, 0.118428f, 0.116927f, 0.115428f, 0.113931f, 0.112434f, 0.110940f, 0.109447f, 0.107955f,
0.106465f, 0.104977f, 0.103490f, 0.102005f, 0.100522f, 0.099041f, 0.097561f, 0.096083f, 0.094608f, 0.093134f, 0.091662f, 0.090192f,
0.088724f, 0.087258f, 0.085794f, 0.084333f, 0.082873f, 0.081416f, 0.079961f, 0.078508f, 0.077058f, 0.075609f, 0.074164f, 0.072720f,
0.071279f, 0.069840f, 0.068404f, 0.066971f, 0.065540f, 0.064111f, 0.062685f, 0.061262f, 0.059842f, 0.058424f, 0.057009f, 0.055596f,
0.054187f, 0.052780f, 0.051376f, 0.049975f, 0.048577f, 0.047182f, 0.045790f, 0.044400f, 0.043014f, 0.041631f, 0.040251f, 0.038874f,
0.037500f, 0.036130f, 0.034762f, 0.033398f, 0.032037f, 0.030679f, 0.029325f, 0.027974f, 0.026626f, 0.025282f, 0.023941f, 0.022603f,
0.021269f, 0.019938f, 0.018611f, 0.017288f, 0.015968f, 0.014652f, 0.013339f, 0.012030f, 0.010724f, 0.009422f, 0.008124f, 0.006830f,
0.005539f, 0.004253f, 0.002969f, 0.001690f, 0.000415f, -0.000856f, -0.002124f, -0.003388f, -0.004647f, -0.005903f, -0.007155f, -0.008403f,
-0.009646f, -0.010886f, -0.012122f, -0.013353f, -0.014581f, -0.015804f, -0.017023f, -0.018238f, -0.019449f, -0.020655f, -0.021857f, -0.023055f,
-0.024249f, -0.025439f, -0.026624f, -0.027805f, -0.028981f, -0.030153f, -0.031321f, -0.032484f, -0.033643f, -0.034797f, -0.035947f, -0.037093f,
-0.038234f, -0.039370f, -0.040502f, -0.041630f, -0.042753f, -0.043871f, -0.044984f, -0.046093f, -0.047198f, -0.048298f, -0.049393f, -0.050483f,
-0.051569f, -0.052650f, -0.053726f, -0.054798f, -0.055865f, -0.056927f, -0.057984f, -0.059036f, -0.060084f, -0.061127f, -0.062165f, -0.063198f,
-0.064226f, -0.065250f, -0.066268f, -0.067282f, -0.068290f, -0.069294f, -0.070293f, -0.071287f, -0.072276f, -0.073260f, -0.074239f, -0.075213f,
-0.076181f, -0.077145f, -0.078104f, -0.079058f, -0.080007f, -0.080950f, -0.081889f, -0.082823f, -0.083751f, -0.084674f, -0.085593f, -0.086506f,
-0.087414f, -0.088317f, -0.089214f, -0.090107f, -0.090994f, -0.091876f, -0.092753f, -0.093625f, -0.094492f, -0.095353f, -0.096209f, -0.097060f,
-0.097906f, -0.098747f, -0.099582f, -0.100412f, -0.101237f, -0.102056f, -0.102870f, -0.103679f, -0.104483f, -0.105281f, -0.106074f, -0.106862f,
-0.107645f, -0.108422f, -0.109194f, -0.109960f, -0.110721f, -0.111477f, -0.112228f, -0.112973f, -0.113713f, -0.114447f, -0.115177f, -0.115900f,
-0.116619f, -0.117332f, -0.118040f, -0.118742f, -0.119439f, -0.120131f, -0.120817f, -0.121498f, -0.122174f, -0.122844f, -0.123508f, -0.124168f,
-0.124822f, -0.125470f, -0.126114f, -0.126752f, -0.127384f, -0.128011f, -0.128633f, -0.129249f, -0.129860f, -0.130465f, -0.131066f, -0.131660f,
-0.132250f, -0.132834f, -0.133412f, -0.133985f, -0.134553f, -0.135115f, -0.135672f, -0.136224f, -0.136770f, -0.137311f, -0.137847f, -0.138377f,
-0.138902f, -0.139421f, -0.139935f, -0.140443f, -0.140947f, -0.141445f, -0.141937f, -0.142424f, -0.142906f, -0.143383f, -0.143854f, -0.144319f,
-0.144780f, -0.145235f, -0.145685f, -0.146129f, -0.146568f, -0.147002f, -0.147430f, -0.147854f, -0.148271f, -0.148684f, -0.149091f, -0.149493f,
-0.149890f, -0.150281f, -0.150667f, -0.151048f, -0.151424f, -0.151794f, -0.152159f, -0.152519f, -0.152873f, -0.153223f, -0.153567f, -0.153906f,
-0.154239f, -0.154568f, -0.154891f, -0.155209f, -0.155522f, -0.155830f, -0.156132f, -0.156429f, -0.156722f, -0.157009f, -0.157290f, -0.157567f,
-0.157839f, -0.158105f, -0.158367f, -0.158623f, -0.158874f, -0.159120f, -0.159361f, -0.159597f, -0.159828f, -0.160054f, -0.160275f, -0.160491f,
-0.160702f, -0.160907f, -0.161108f, -0.161304f, -0.161495f, -0.161681f, -0.161861f, -0.162037f, -0.162208f, -0.162374f, -0.162536f, -0.162692f,
-0.162843f, -0.162990f, -0.163131f, -0.163268f, -0.163400f, -0.163527f, -0.163649f, -0.163766f, -0.163879f, -0.163986f, -0.164089f, -0.164188f,
-0.164281f, -0.164370f, -0.164454f, -0.164533f, -0.164607f, -0.164677f, -0.164742f, -0.164803f, -0.164858f, -0.164909f, -0.164956f, -0.164998f,
-0.165035f, -0.165068f, -0.165096f, -0.165119f, -0.165138f, -0.165152f, -0.165162f, -0.165167f, -0.165168f, -0.165164f, -0.165156f, -0.165143f,
-0.165126f, -0.165105f, -0.165079f, -0.165049f, -0.165014f, -0.164975f, -0.164932f, -0.164884f, -0.164832f, -0.164775f, -0.164714f, -0.164649f,
-0.164580f, -0.164506f, -0.164428f, -0.164346f, -0.164260f, -0.164169f, -0.164074f, -0.163976f, -0.163873f, -0.163765f, -0.163654f, -0.163539f,
-0.163419f, -0.163296f, -0.163168f, -0.163036f, -0.162900f, -0.162761f, -0.162617f, -0.162469f, -0.162317f, -0.162162f, -0.162002f, -0.153841f,
-0.188215f, -0.172309f, -0.124698f, -0.088926f, -0.096190f, -0.156102f, -0.260706f, -0.392601f, -0.532406f, -0.663758f, -0.775649f, -0.862724f,
-0.924337f, -0.963088f, -0.983341f, -0.990000f, -0.987669f, -0.980171f, -0.970370f, -0.960194f, -0.950774f, -0.942641f, -0.935914f, -0.930465f,
-0.926048f, -0.922385f, -0.919219f, -0.916340f, -0.913593f, -0.910873f, -0.908119f, -0.905301f, -0.902410f, -0.899448f, -0.896427f, -0.893356f,
-0.890248f, -0.887111f, -0.883952f, -0.880776f, -0.877586f, -0.874383f, -0.871168f, -0.867941f, -0.864702f, -0.861451f, -0.858188f, -0.854911f,
-0.851622f, -0.848319f, -0.845004f, -0.841676f, -0.838335f, -0.834981f, -0.831614f, -0.828236f, -0.824845f, -0.821441f, -0.818026f, -0.814600f,
-0.811161f, -0.807711f, -0.804249f, -0.800776f, -0.797292f, -0.793796f, -0.790290f, -0.786773f, -0.783246f, -0.779707f, -0.776159f, -0.772600f,
-0.769031f, -0.765452f, -0.761863f, -0.758264f, -0.754655f, -0.751037f, -0.747410f, -0.743773f, -0.740128f, -0.736473f, -0.732809f, -0.729137f,
-0.725455f, -0.721766f, -0.718068f, -0.714362f, -0.710647f, -0.706925f, -0.703194f, -0.699456f, -0.695711f, -0.691958f, -0.688197f, -0.684429f,
-0.680654f, -0.676872f, -0.673084f, -0.669288f, -0.665486f, -0.661677f, -0.657862f, -0.654041f, -0.650213f, -0.646380f, -0.642540f, -0.638695f,
-0.634844f, -0.630988f, -0.627126f, -0.623259f, -0.619387f, -0.615509f, -0.611627f, -0.607740f, -0.603848f, -0.599952f, -0.596051f, -0.592146f,
-0.588237f, -0.584324f, -0.580407f, -0.576485f, -0.572561f, -0.568632f, -0.564700f, -0.560765f, -0.556826f, -0.552884f, -0.548940f, -0.544992f,
-0.541041f, -0.537088f, -0.533133f, -0.529174f, -0.525214f, -0.521251f, -0.517286f, -0.513320f, -0.509351f, -0.505381f, -0.501409f, -0.497435f,
-0.493460f, -0.489484f, -0.485506f, -0.481528f, -0.477548f, -0.473567f, -0.469586f, -0.465604f, -0.461622f, -0.457639f, -0.453656f, -0.449673f,
-0.445690f, -0.441706f, -0.437723f, -0.433740f, -0.429757f, -0.425775f, -0.421793f, -0.417812f, -0.413832f, -0.409853f, -0.405874f, -0.401897f,
-0.397921f, -0.393946f, -0.389973f, -0.386001f, -0.382030f, -0.378062f, -0.374095f, -0.370130f, -0.366167f, -0.362206f, -0.358248f, -0.354291f,
-0.350337f, -0.346386f, -0.342437f, -0.338491f, -0.334548f, -0.330608f, -0.326671f, -0.322737f, -0.318806f, -0.314878f, -0.310954f, -0.307033f,
-0.303116f, -0.299203f, -0.295293f, -0.291387f, -0.287485f, -0.283588f, -0.279694f, -0.275805f, -0.271920f, -0.268039f, -0.264163f, -0.260292f,
-0.256425f, -0.252563f, -0.248706f, -0.244854f, -0.241008f, -0.237166f, -0.233329f, -0.229498f, -0.225672f, -0.221852f, -0.218038f, -0.214229f,
-0.210426f, -0.206628f, -0.202837f, -0.199052f, -0.195273f, -0.191500f, -0.187733f, -0.183973f, -0.180219f, -0.176471f, -0.172731f, -0.168997f,
-0.165269f, -0.161549f, -0.157836f, -0.154129f, -0.150430f, -0.146738f, -0.143053f, -0.139375f, -0.135705f, -0.132042f, -0.128387f, -0.124740f,
-0.121100f, -0.117468f, -0.113844f, -0.110228f, -0.106620f, -0.103020f, -0.099428f, -0.095844f, -0.092269f, -0.088702f, -0.085144f, -0.081594f,
-0.078052f, -0.074519f, -0.070995f, -0.067480f, -0.063974f, -0.060477f, -0.056988f, -0.053509f, -0.050039f, -0.046578f, -0.043126f, -0.039684f,
-0.036251f, -0.032828f, -0.029414f, -0.026009f, -0.022615f, -0.019230f, -0.015855f, -0.012489f, -0.009134f, -0.005788f, -0.002453f, 0.000872f,
0.004187f, 0.007492f, 0.010787f, 0.014071f, 0.017345f, 0.020609f, 0.023862f, 0.027104f, 0.030336f, 0.033557f, 0.036768f, 0.039968f,
0.043156f, 0.046334f, 0.049501f, 0.052658f, 0.055803f, 0.058936f, 0.062059f, 0.065171f, 0.068271f, 0.071360f, 0.074438f, 0.077504f,
0.080559f, 0.083602f, 0.086634f, 0.089654f, 0.092663f, 0.095660f, 0.098645f, 0.101618f, 0.104580f, 0.107530f, 0.110467f, 0.113393f,
0.116307f, 0.119209f, 0.122099f, 0.124976f, 0.127842f, 0.130695f, 0.133536f, 0.136365f, 0.139181f, 0.141985f, 0.144777f, 0.147556f,
0.150323f, 0.153077f, 0.155819f, 0.158548f, 0.161264f, 0.163968f, 0.166659f, 0.169338f, 0.172003f, 0.174656f, 0.177296f, 0.179924f,
0.182538f, 0.185139f, 0.187728f, 0.190303f, 0.192865f, 0.195415f, 0.197951f, 0.200474f, 0.202984f, 0.205481f, 0.207965f, 0.210435f,
0.212892f, 0.215336f, 0.217767f, 0.220184f, 0.222588f, 0.224979f, 0.227356f, 0.229720f, 0.232070f, 0.234407f, 0.236731f, 0.239041f,
0.241337f, 0.243620f, 0.245889f, 0.248145f, 0.250387f, 0.252615f, 0.254830f, 0.257031f, 0.259218f, 0.261392f, 0.263552f, 0.265698f,
0.267830f, 0.269949f, 0.272054f, 0.274145f, 0.276222f, 0.278286f, 0.280335f, 0.282371f, 0.284393f, 0.286401f, 0.288395f, 0.290375f,
0.292341f, 0.294293f, 0.296232f, 0.298156f, 0.300066f, 0.301963f, 0.303845f, 0.305714f, 0.307568f, 0.309409f, 0.311235f, 0.313048f,
0.314846f, 0.316630f, 0.318401f, 0.320157f, 0.321899f, 0.323627f, 0.325341f, 0.327041f, 0.328727f, 0.330399f, 0.332057f, 0.333701f,
0.335330f, 0.336946f, 0.338547f, 0.340135f, 0.341708f, 0.343267f, 0.344813f, 0.346344f, 0.347861f, 0.349364f, 0.350853f, 0.352327f,
0.353788f, 0.355235f, 0.356667f, 0.358086f, 0.359490f, 0.360881f, 0.362257f, 0.363620f, 0.364968f, 0.366302f, 0.367622f, 0.368929f,
0.370221f, 0.371499f, 0.372764f, 0.374014f, 0.375250f, 0.376472f, 0.377681f, 0.378875f, 0.380056f, 0.381222f, 0.382375f, 0.383514f,
0.384639f, 0.385750f, 0.386847f, 0.387930f, 0.388999f, 0.390055f, 0.391097f, 0.392125f, 0.393139f, 0.394139f, 0.395126f, 0.396099f,
0.397058f, 0.398003f, 0.398935f, 0.399853f, 0.400758f, 0.401648f, 0.402525f, 0.403389f, 0.404239f, 0.405075f, 0.405898f, 0.406707f,
0.407503f, 0.408285f, 0.409054f, 0.409809f, 0.410551f, 0.411279f, 0.411994f, 0.412696f, 0.413384f, 0.414059f, 0.414721f, 0.415369f,
0.416004f, 0.416626f, 0.417235f, 0.417830f, 0.418412f, 0.418981f, 0.419538f, 0.420080f, 0.420610f, 0.421127f, 0.421631f, 0.422122f,
0.422599f, 0.423064f, 0.423516f, 0.423955f, 0.424381f, 0.424795f, 0.425195f, 0.425583f, 0.425958f, 0.426320f, 0.426670f, 0.427007f,
0.427331f, 0.427643f, 0.427942f, 0.428228f, 0.428502f, 0.428764f, 0.429013f, 0.429250f, 0.429474f, 0.429686f, 0.429886f, 0.430073f,
0.430248f, 0.430411f, 0.430562f, 0.430700f, 0.430827f, 0.430941f, 0.431043f, 0.431133f, 0.431211f, 0.431278f, 0.431332f, 0.431374f,
0.431405f, 0.431423f, 0.431430f, 0.431426f, 0.431409f, 0.431381f, 0.431341f, 0.431290f, 0.431227f, 0.431152f, 0.431066f, 0.430969f,
0.430860f, 0.430739f, 0.430608f, 0.430465f, 0.430311f, 0.430145f, 0.429969f, 0.429781f, 0.429582f, 0.429372f, 0.429151f, 0.428919f,
0.428676f, 0.428422f, 0.428158f, 0.427882f, 0.427596f, 0.427299f, 0.426991f, 0.426672f, 0.426343f, 0.426004f, 0.425653f, 0.425293f,
0.424921f, 0.424540f, 0.424148f, 0.423746f, 0.423333f, 0.422910f, 0.422477f, 0.422034f, 0.421580f, 0.421117f, 0.420643f, 0.420160f,
0.419667f, 0.419163f, 0.418650f, 0.418127f, 0.417594f, 0.417052f, 0.416499f, 0.415938f, 0.415366f, 0.414785f, 0.414195f, 0.413595f,
0.412985f, 0.412367f, 0.411739f, 0.411101f, 0.410455f, 0.409799f, 0.409134f, 0.408460f, 0.407777f, 0.407085f, 0.406384f, 0.405674f,
};


#define viralsaw_count 1200

SGFLT viralsaw_array[viralsaw_count]  = {
0.327097f, 0.334336f, 0.333261f, 0.326450f, 0.323610f, 0.329375f, 0.352511f, 0.366912f, 0.367124f, 0.367780f, 0.379936f, 0.397325f,
0.423992f, 0.440868f, 0.449445f, 0.454089f, 0.449414f, 0.444944f, 0.425424f, 0.398703f, 0.361917f, 0.326202f, 0.290671f, 0.264511f,
0.265486f, 0.288015f, 0.305601f, 0.331041f, 0.341297f, 0.389137f, 0.449440f, 0.495725f, 0.506133f, 0.474564f, 0.406667f, 0.321503f,
0.231103f, 0.142908f, 0.062142f, 0.018140f, -0.009007f, -0.028359f, -0.028361f, -0.003489f, 0.016909f, 0.035526f, 0.052898f, 0.070888f,
0.088075f, 0.096727f, 0.099574f, 0.108943f, 0.112263f, 0.109262f, 0.104103f, 0.107098f, 0.113602f, 0.109757f, 0.095039f, 0.080798f,
0.066167f, 0.059275f, 0.048099f, 0.043577f, 0.048257f, 0.061611f, 0.098033f, 0.124975f, 0.157913f, 0.183462f, 0.205986f, 0.216892f,
0.215354f, 0.206762f, 0.198061f, 0.196174f, 0.182240f, 0.160525f, 0.129696f, 0.113404f, 0.091366f, 0.089377f, 0.091271f, 0.101349f,
0.111394f, 0.116025f, 0.125804f, 0.134203f, 0.136599f, 0.159731f, 0.173628f, 0.194027f, 0.206545f, 0.224635f, 0.238282f, 0.245934f,
0.248721f, 0.258977f, 0.249570f, 0.241453f, 0.229171f, 0.216010f, 0.204492f, 0.195220f, 0.201557f, 0.221756f, 0.248099f, 0.267652f,
0.285628f, 0.285361f, 0.271429f, 0.251148f, 0.230128f, 0.206617f, 0.185068f, 0.178004f, 0.164964f, 0.151764f, 0.148616f, 0.143856f,
0.140746f, 0.137714f, 0.154390f, 0.187896f, 0.208719f, 0.220749f, 0.237838f, 0.245119f, 0.247722f, 0.247467f, 0.244640f, 0.246718f,
0.242944f, 0.229424f, 0.206734f, 0.186537f, 0.171825f, 0.162602f, 0.163920f, 0.177981f, 0.188282f, 0.205360f, 0.227301f, 0.244112f,
0.248878f, 0.257037f, 0.259591f, 0.272727f, 0.275880f, 0.275387f, 0.283280f, 0.294284f, 0.305506f, 0.312279f, 0.322381f, 0.351998f,
0.375132f, 0.395300f, 0.414792f, 0.425635f, 0.421479f, 0.409607f, 0.389704f, 0.383329f, 0.388699f, 0.398806f, 0.404726f, 0.406389f,
0.393606f, 0.371382f, 0.349828f, 0.318590f, 0.295360f, 0.282094f, 0.256324f, 0.237624f, 0.207897f, 0.191108f, 0.185359f, 0.185474f,
0.185035f, 0.182393f, 0.181486f, 0.187970f, 0.191202f, 0.196669f, 0.205738f, 0.218967f, 0.222888f, 0.232709f, 0.242621f, 0.258270f,
0.275604f, 0.292187f, 0.306630f, 0.318294f, 0.320583f, 0.318337f, 0.315885f, 0.313013f, 0.331988f, 0.342938f, 0.342027f, 0.339151f,
0.333381f, 0.343712f, 0.352027f, 0.341210f, 0.323768f, 0.312000f, 0.302056f, 0.292736f, 0.287656f, 0.292093f, 0.307862f, 0.318963f,
0.332530f, 0.342091f, 0.340692f, 0.352698f, 0.355398f, 0.359266f, 0.351051f, 0.354651f, 0.349723f, 0.343753f, 0.344170f, 0.350828f,
0.366075f, 0.383331f, 0.400816f, 0.414713f, 0.428110f, 0.435244f, 0.446772f, 0.442394f, 0.429397f, 0.410342f, 0.380950f, 0.368659f,
0.362552f, 0.377992f, 0.383557f, 0.399626f, 0.412900f, 0.428485f, 0.432564f, 0.427121f, 0.416544f, 0.400593f, 0.383321f, 0.356524f,
0.331544f, 0.323002f, 0.312331f, 0.312406f, 0.312252f, 0.320403f, 0.335019f, 0.348416f, 0.359132f, 0.372352f, 0.378481f, 0.378730f,
0.385843f, 0.393400f, 0.404302f, 0.407023f, 0.395039f, 0.361005f, 0.329000f, 0.299455f, 0.278364f, 0.267358f, 0.267749f, 0.284848f,
0.307712f, 0.325943f, 0.328613f, 0.324216f, 0.321182f, 0.324369f, 0.328490f, 0.329364f, 0.329572f, 0.319886f, 0.310600f, 0.306510f,
0.313431f, 0.315960f, 0.320034f, 0.330290f, 0.338933f, 0.341881f, 0.335710f, 0.334569f, 0.345333f, 0.361355f, 0.372800f, 0.367063f,
0.350161f, 0.326632f, 0.307187f, 0.295406f, 0.306731f, 0.323342f, 0.333868f, 0.350473f, 0.345568f, 0.332004f, 0.316122f, 0.308682f,
0.312392f, 0.321629f, 0.326786f, 0.340895f, 0.339191f, 0.340765f, 0.355893f, 0.360177f, 0.359781f, 0.345604f, 0.342473f, 0.340688f,
0.338928f, 0.337043f, 0.338316f, 0.347688f, 0.340806f, 0.333998f, 0.331797f, 0.339481f, 0.355959f, 0.361396f, 0.368586f, 0.374581f,
0.367230f, 0.357589f, 0.343107f, 0.324222f, 0.316393f, 0.316771f, 0.312070f, 0.306792f, 0.298931f, 0.287900f, 0.276632f, 0.271771f,
0.262759f, 0.243734f, 0.227715f, 0.226830f, 0.227986f, 0.223982f, 0.226083f, 0.232558f, 0.233162f, 0.226952f, 0.224780f, 0.222144f,
0.223076f, 0.233005f, 0.240381f, 0.248467f, 0.260972f, 0.267726f, 0.267028f, 0.272175f, 0.275983f, 0.279633f, 0.283086f, 0.287553f,
0.289525f, 0.294714f, 0.286602f, 0.279714f, 0.259203f, 0.251241f, 0.248059f, 0.247852f, 0.243610f, 0.229901f, 0.214465f, 0.201444f,
0.199336f, 0.200380f, 0.202241f, 0.211146f, 0.210054f, 0.206936f, 0.200782f, 0.191676f, 0.180386f, 0.170974f, 0.163621f, 0.157192f,
0.164794f, 0.171715f, 0.184727f, 0.193128f, 0.196632f, 0.208545f, 0.222880f, 0.238722f, 0.248202f, 0.247404f, 0.235777f, 0.225845f,
0.215893f, 0.205131f, 0.192243f, 0.199716f, 0.214621f, 0.228214f, 0.236185f, 0.251206f, 0.242947f, 0.249654f, 0.251936f, 0.254857f,
0.250587f, 0.243377f, 0.246507f, 0.247089f, 0.253385f, 0.256351f, 0.247552f, 0.241054f, 0.237025f, 0.240541f, 0.234683f, 0.228375f,
0.219667f, 0.221861f, 0.218296f, 0.213909f, 0.208205f, 0.201553f, 0.195863f, 0.183825f, 0.172890f, 0.161521f, 0.139349f, 0.114348f,
0.109287f, 0.115882f, 0.123903f, 0.122004f, 0.115275f, 0.117050f, 0.118755f, 0.127483f, 0.133766f, 0.133710f, 0.120478f, 0.106218f,
0.094643f, 0.076742f, 0.056960f, 0.036647f, 0.024508f, 0.021294f, 0.011436f, 0.006765f, 0.014655f, 0.020510f, 0.043365f, 0.083637f,
0.124106f, 0.154010f, 0.162546f, 0.168278f, 0.175102f, 0.172813f, 0.169612f, 0.133917f, 0.128766f, 0.147935f, 0.161050f, 0.149774f,
0.102808f, 0.026989f, -0.075260f, -0.177652f, -0.261516f, -0.301385f, -0.347309f, -0.344921f, -0.314876f, -0.304525f, -0.302515f, -0.334343f,
-0.397998f, -0.479596f, -0.556561f, -0.617043f, -0.670291f, -0.701602f, -0.715874f, -0.716033f, -0.706319f, -0.686036f, -0.661859f, -0.635089f,
-0.612197f, -0.587129f, -0.576100f, -0.569230f, -0.573824f, -0.594952f, -0.615360f, -0.633402f, -0.647198f, -0.650963f, -0.648567f, -0.641451f,
-0.624725f, -0.606226f, -0.593013f, -0.588212f, -0.563657f, -0.535318f, -0.509334f, -0.496108f, -0.483914f, -0.469075f, -0.466630f, -0.468104f,
-0.469942f, -0.466065f, -0.455234f, -0.454773f, -0.443085f, -0.438564f, -0.446153f, -0.455474f, -0.467598f, -0.478149f, -0.474762f, -0.467984f,
-0.443996f, -0.425938f, -0.400421f, -0.378729f, -0.369892f, -0.362847f, -0.367249f, -0.375787f, -0.384390f, -0.401890f, -0.422256f, -0.443862f,
-0.459267f, -0.464516f, -0.450346f, -0.439718f, -0.426814f, -0.412031f, -0.395583f, -0.377034f, -0.363361f, -0.354085f, -0.359002f, -0.366153f,
-0.377144f, -0.396914f, -0.416398f, -0.426126f, -0.433936f, -0.431646f, -0.434842f, -0.426176f, -0.406723f, -0.388627f, -0.369974f, -0.354881f,
-0.350967f, -0.344134f, -0.349521f, -0.348397f, -0.345650f, -0.342203f, -0.339550f, -0.328838f, -0.307893f, -0.300312f, -0.298007f, -0.291291f,
-0.289650f, -0.294625f, -0.293300f, -0.291250f, -0.282580f, -0.292754f, -0.304298f, -0.303677f, -0.299847f, -0.307000f, -0.323211f, -0.334743f,
-0.335881f, -0.334913f, -0.330347f, -0.306196f, -0.282701f, -0.277345f, -0.273044f, -0.278232f, -0.299833f, -0.320049f, -0.323710f, -0.352679f,
-0.339697f, -0.308927f, -0.287065f, -0.286205f, -0.313940f, -0.376364f, -0.454586f, -0.545958f, -0.639983f, -0.728414f, -0.785427f, -0.813684f,
-0.818646f, -0.816146f, -0.788404f, -0.748386f, -0.717143f, -0.687916f, -0.669963f, -0.655615f, -0.661490f, -0.657957f, -0.658388f, -0.661280f,
-0.662243f, -0.657521f, -0.661517f, -0.661364f, -0.664003f, -0.664846f, -0.661750f, -0.655968f, -0.645893f, -0.640758f, -0.621915f, -0.601650f,
-0.577710f, -0.559000f, -0.536510f, -0.509016f, -0.487656f, -0.474392f, -0.468184f, -0.470436f, -0.470579f, -0.486822f, -0.510917f, -0.537181f,
-0.535433f, -0.560652f, -0.543683f, -0.499768f, -0.471911f, -0.471058f, -0.507061f, -0.569173f, -0.649626f, -0.731634f, -0.807369f, -0.885000f,
-0.939670f, -0.973745f, -0.990000f, -0.988998f, -0.979071f, -0.957548f, -0.932875f, -0.900253f, -0.864352f, -0.839980f, -0.825359f, -0.820750f,
-0.824173f, -0.837134f, -0.858053f, -0.861511f, -0.863544f, -0.857897f, -0.845451f, -0.836143f, -0.836641f, -0.827542f, -0.817368f, -0.802415f,
-0.790964f, -0.774817f, -0.766458f, -0.769054f, -0.770745f, -0.782009f, -0.786547f, -0.785457f, -0.762704f, -0.734193f, -0.705685f, -0.674567f,
-0.653105f, -0.629877f, -0.617160f, -0.608546f, -0.602157f, -0.603474f, -0.611889f, -0.617352f, -0.624281f, -0.634063f, -0.646307f, -0.659915f,
-0.669187f, -0.678857f, -0.681112f, -0.678024f, -0.686921f, -0.686810f, -0.684854f, -0.685296f, -0.680226f, -0.664612f, -0.638235f, -0.623956f,
-0.602585f, -0.578598f, -0.563768f, -0.548542f, -0.541482f, -0.540807f, -0.534870f, -0.531190f, -0.525244f, -0.511400f, -0.495640f, -0.472977f,
-0.462124f, -0.449209f, -0.475794f, -0.460538f, -0.414676f, -0.381003f, -0.373831f, -0.419688f, -0.504872f, -0.604931f, -0.704736f, -0.794818f,
-0.858830f, -0.903665f, -0.914763f, -0.903310f, -0.891125f, -0.867692f, -0.849083f, -0.830368f, -0.826005f, -0.834593f, -0.837453f, -0.823496f,
-0.787202f, -0.755639f, -0.723778f, -0.711699f, -0.691548f, -0.679973f, -0.679390f, -0.679399f, -0.674161f, -0.658608f, -0.649203f, -0.648711f,
-0.651124f, -0.655231f, -0.647429f, -0.646377f, -0.639475f, -0.627708f, -0.621924f, -0.615769f, -0.611066f, -0.615991f, -0.604941f, -0.600080f,
-0.588293f, -0.577517f, -0.578720f, -0.578304f, -0.561823f, -0.540994f, -0.532016f, -0.526706f, -0.525942f, -0.540552f, -0.547511f, -0.554182f,
-0.556949f, -0.563949f, -0.557612f, -0.538985f, -0.501004f, -0.467865f, -0.443896f, -0.429073f, -0.428203f, -0.441966f, -0.453272f, -0.451506f,
-0.453732f, -0.448987f, -0.449326f, -0.453898f, -0.451730f, -0.449342f, -0.447119f, -0.433235f, -0.422531f, -0.408172f, -0.384496f, -0.356735f,
-0.319724f, -0.285574f, -0.267326f, -0.262810f, -0.248533f, -0.237843f, -0.231537f, -0.232461f, -0.227019f, -0.227662f, -0.234505f, -0.242975f,
-0.246885f, -0.237943f, -0.221294f, -0.198802f, -0.174571f, -0.144396f, -0.123324f, -0.107439f, -0.105132f, -0.101619f, -0.112218f, -0.119164f,
-0.136419f, -0.155695f, -0.190344f, -0.215118f, -0.218305f, -0.212674f, -0.218672f, -0.223693f, -0.215583f, -0.210245f, -0.201081f, -0.185694f,
-0.168977f, -0.146086f, -0.112165f, -0.095321f, -0.099113f, -0.111346f, -0.128328f, -0.127188f, -0.118134f, -0.097807f, -0.072862f, -0.067217f,
-0.050901f, -0.026684f, -0.005050f, 0.002157f, 0.008763f, 0.011335f, -0.004286f, -0.023503f, -0.034844f, -0.038723f, -0.032661f, -0.025843f,
-0.007219f, -0.004463f, -0.012943f, -0.022586f, -0.025218f, -0.007077f, 0.006218f, 0.009822f, 0.008784f, -0.001028f, -0.011412f, -0.022399f,
-0.020782f, -0.013430f, -0.003603f, 0.004278f, 0.008546f, 0.021388f, 0.037273f, 0.056046f, 0.082149f, 0.107332f, 0.112637f, 0.127728f,
0.136497f, 0.143670f, 0.151831f, 0.163829f, 0.164691f, 0.167445f, 0.172143f, 0.164023f, 0.155851f, 0.148986f, 0.146416f, 0.152911f,
0.168961f, 0.187456f, 0.197523f, 0.201493f, 0.200934f, 0.210319f, 0.215601f, 0.224146f, 0.229387f, 0.232792f, 0.238296f, 0.243263f,
0.250602f, 0.265958f, 0.278293f, 0.284264f, 0.294780f, 0.299451f, 0.296344f, 0.290738f, 0.282497f, 0.275626f, 0.265230f, 0.270462f,
0.289166f, 0.306712f, 0.323870f, 0.343118f, 0.360558f, 0.371977f, 0.377438f, 0.370129f, 0.346872f, 0.332412f, 0.318432f, 0.316923f,
0.309269f, 0.297038f, 0.296348f, 0.307848f, 0.314231f, 0.323772f, 0.327361f, 0.325069f, 0.328048f, 0.330412f, 0.340146f, 0.349120f,
0.346727f, 0.351791f, 0.358685f, 0.374292f, 0.390444f, 0.404135f, 0.428414f, 0.445456f, 0.461704f, 0.463167f, 0.447759f, 0.423292f,
0.402316f, 0.386810f, 0.372778f, 0.369841f, 0.381326f, 0.398548f, 0.399992f, 0.392409f, 0.388024f, 0.380946f, 0.379886f, 0.378779f,
0.386826f, 0.392767f, 0.403024f, 0.405806f, 0.416266f, 0.419802f, 0.412562f, 0.392843f, 0.386673f, 0.385726f, 0.396237f, 0.410087f,
0.419773f, 0.434350f, 0.436786f, 0.435324f, 0.441449f, 0.439764f, 0.442369f, 0.437322f, 0.424555f, 0.416463f, 0.404258f, 0.407518f,
0.411948f, 0.426970f, 0.431519f, 0.445216f, 0.442228f, 0.441341f, 0.434745f, 0.424562f, 0.409249f, 0.408458f, 0.411742f, 0.428898f,
0.455293f, 0.481058f, 0.506388f, 0.531089f, 0.555793f, 0.576570f, 0.602194f, 0.623918f, 0.646916f, 0.669152f, 0.676997f, 0.683263f,
0.684347f, 0.690328f, 0.683715f, 0.666880f, 0.656626f, 0.638196f, 0.623273f, 0.623992f, 0.616813f, 0.609245f, 0.591719f, 0.578711f,
0.563089f, 0.544136f, 0.526088f, 0.517399f, 0.501855f, 0.491565f, 0.493788f, 0.495288f, 0.491799f, 0.494803f, 0.492005f, 0.495160f,
0.513143f, 0.536649f, 0.564980f, 0.580562f, 0.586021f, 0.589272f, 0.591262f, 0.585358f, 0.569285f, 0.564162f, 0.570312f, 0.579301f,
0.581268f, 0.576667f, 0.576758f, 0.580896f, 0.588001f, 0.594893f, 0.596631f, 0.594582f, 0.593395f, 0.597359f, 0.608722f, 0.609434f,
0.611047f, 0.613808f, 0.614858f, 0.608642f, 0.618428f, 0.631324f, 0.636577f, 0.638529f, 0.616619f, 0.629811f, 0.659612f, 0.684160f,
0.695319f, 0.671560f, 0.607722f, 0.533531f, 0.465695f, 0.392726f, 0.335805f, 0.297629f, 0.264487f, 0.252494f, 0.247612f, 0.245844f,
0.248271f, 0.245358f, 0.249369f, 0.258357f, 0.270192f, 0.285571f, 0.297674f, 0.313326f, 0.331274f, 0.326778f, 0.329399f, 0.314196f,
0.305038f, 0.298190f, 0.294456f, 0.305247f, 0.328873f, 0.345781f, 0.350470f, 0.350848f, 0.340400f, 0.327352f, 0.325822f, 0.312926f,
0.299240f, 0.280679f, 0.268087f, 0.239354f, 0.214987f, 0.209262f, 0.206628f, 0.207235f, 0.209600f, 0.210017f, 0.211434f, 0.212498f,
0.223632f, 0.236521f, 0.253299f, 0.281872f, 0.308793f, 0.344011f, 0.373800f, 0.407035f, 0.431537f, 0.445638f, 0.452749f, 0.446355f,
0.435101f, 0.412385f, 0.409598f, 0.400940f, 0.400475f, 0.406904f, 0.424480f, 0.434435f, 0.423075f, 0.402598f, 0.376696f, 0.376769f,
0.389884f, 0.404011f, 0.419246f, 0.422688f, 0.421959f, 0.420826f, 0.426301f, 0.437328f, 0.447737f, 0.455968f, 0.463815f, 0.450571f,
0.430162f, 0.422133f, 0.403527f, 0.378743f, 0.373655f, 0.365397f, 0.366411f, 0.368808f, 0.367304f, 0.364610f, 0.361672f, 0.359835f,
};


#define soft_saw_count 1200

SGFLT soft_saw_array[soft_saw_count]  = {
0.147352f, 0.144996f, 0.143031f, 0.141601f, 0.140789f, 0.140067f, 0.138571f, 0.134571f, 0.128080f, 0.120437f, 0.111784f, 0.101935f,
0.091628f, 0.080776f, 0.070290f, 0.061176f, 0.052842f, 0.045122f, 0.037667f, 0.030562f, 0.024572f, 0.019113f, 0.014329f, 0.011256f,
0.009313f, 0.008986f, 0.010199f, 0.013033f, 0.015992f, 0.017744f, 0.018425f, 0.017054f, 0.014695f, 0.011548f, 0.007833f, 0.003577f,
-0.000956f, -0.004806f, -0.008313f, -0.011891f, -0.014474f, -0.014905f, -0.013787f, -0.010693f, -0.006682f, -0.003180f, -0.000944f, -0.000885f,
-0.001792f, -0.003124f, -0.005246f, -0.007595f, -0.009633f, -0.011147f, -0.011766f, -0.012035f, -0.012615f, -0.013726f, -0.015768f, -0.018207f,
-0.020628f, -0.023226f, -0.025364f, -0.026972f, -0.028988f, -0.031326f, -0.033219f, -0.035327f, -0.036592f, -0.036741f, -0.036303f, -0.034971f,
-0.032148f, -0.028564f, -0.024876f, -0.020345f, -0.016151f, -0.012156f, -0.008947f, -0.007060f, -0.006288f, -0.008441f, -0.011849f, -0.016486f,
-0.021675f, -0.026308f, -0.030376f, -0.033309f, -0.035330f, -0.037072f, -0.038759f, -0.040678f, -0.041382f, -0.041841f, -0.041859f, -0.041520f,
-0.041659f, -0.042093f, -0.043172f, -0.044275f, -0.044770f, -0.045045f, -0.045307f, -0.044981f, -0.043758f, -0.042529f, -0.042409f, -0.042686f,
-0.043913f, -0.046733f, -0.051478f, -0.057091f, -0.064348f, -0.073479f, -0.083002f, -0.092401f, -0.101540f, -0.110391f, -0.117913f, -0.124179f,
-0.130140f, -0.135739f, -0.140620f, -0.144196f, -0.147156f, -0.148852f, -0.149016f, -0.148283f, -0.147296f, -0.145647f, -0.144093f, -0.142605f,
-0.140863f, -0.139007f, -0.137506f, -0.136295f, -0.135068f, -0.133689f, -0.132060f, -0.130579f, -0.129589f, -0.128774f, -0.127150f, -0.124766f,
-0.122077f, -0.120210f, -0.118754f, -0.117393f, -0.116408f, -0.115786f, -0.115661f, -0.115306f, -0.115746f, -0.116852f, -0.119203f, -0.122157f,
-0.125778f, -0.129768f, -0.133693f, -0.138084f, -0.142157f, -0.145670f, -0.148287f, -0.150619f, -0.152487f, -0.154123f, -0.154888f, -0.154516f,
-0.153072f, -0.151248f, -0.150179f, -0.149945f, -0.150260f, -0.150284f, -0.150819f, -0.151187f, -0.150164f, -0.149091f, -0.147351f, -0.145187f,
-0.143347f, -0.141752f, -0.140237f, -0.138435f, -0.136124f, -0.133268f, -0.130654f, -0.127707f, -0.124501f, -0.121358f, -0.118025f, -0.114635f,
-0.111265f, -0.107858f, -0.104839f, -0.102079f, -0.099724f, -0.098276f, -0.097912f, -0.097888f, -0.097900f, -0.098145f, -0.097417f, -0.095302f,
-0.092543f, -0.089228f, -0.086077f, -0.083102f, -0.081296f, -0.080784f, -0.081990f, -0.084411f, -0.086412f, -0.088872f, -0.092199f, -0.095664f,
-0.099678f, -0.103658f, -0.107200f, -0.110486f, -0.113335f, -0.115726f, -0.117415f, -0.118384f, -0.117434f, -0.114001f, -0.109399f, -0.103176f,
-0.095219f, -0.086355f, -0.076778f, -0.066704f, -0.056247f, -0.045201f, -0.034218f, -0.023409f, -0.012918f, -0.003188f, 0.005457f, 0.014692f,
0.023318f, 0.030432f, 0.036479f, 0.041609f, 0.045828f, 0.047673f, 0.046895f, 0.043039f, 0.036064f, 0.026897f, 0.016406f, 0.005365f,
-0.006283f, -0.019135f, -0.033745f, -0.049109f, -0.064497f, -0.079334f, -0.092711f, -0.103364f, -0.110623f, -0.115415f, -0.118443f, -0.120032f,
-0.120382f, -0.119792f, -0.118259f, -0.115563f, -0.112571f, -0.110098f, -0.106790f, -0.103167f, -0.099129f, -0.094458f, -0.089295f, -0.083912f,
-0.078351f, -0.072816f, -0.066895f, -0.060303f, -0.053638f, -0.047723f, -0.042349f, -0.036890f, -0.031642f, -0.026066f, -0.021239f, -0.017773f,
-0.015407f, -0.014370f, -0.014633f, -0.016607f, -0.019392f, -0.022932f, -0.027597f, -0.032242f, -0.036763f, -0.040470f, -0.043738f, -0.046751f,
-0.048120f, -0.047747f, -0.045953f, -0.042998f, -0.038991f, -0.034063f, -0.028292f, -0.023513f, -0.021551f, -0.022158f, -0.024406f, -0.029064f,
-0.035708f, -0.042912f, -0.049826f, -0.057003f, -0.063544f, -0.067530f, -0.068667f, -0.067427f, -0.064699f, -0.061102f, -0.056680f, -0.052283f,
-0.047716f, -0.042792f, -0.037394f, -0.032464f, -0.027759f, -0.023536f, -0.019717f, -0.015263f, -0.010503f, -0.004791f, 0.000699f, 0.006162f,
0.010964f, 0.014722f, 0.016953f, 0.017329f, 0.016962f, 0.016358f, 0.016326f, 0.015966f, 0.015415f, 0.015091f, 0.014946f, 0.014789f,
0.015516f, 0.015942f, 0.015088f, 0.013483f, 0.010300f, 0.006429f, 0.001489f, -0.004491f, -0.011209f, -0.018302f, -0.024455f, -0.029420f,
-0.033118f, -0.035964f, -0.037438f, -0.038514f, -0.040042f, -0.041668f, -0.044631f, -0.048321f, -0.052845f, -0.058912f, -0.065930f, -0.072643f,
-0.079018f, -0.085352f, -0.090926f, -0.095026f, -0.097816f, -0.098987f, -0.098447f, -0.097720f, -0.096472f, -0.094778f, -0.093506f, -0.091976f,
-0.090232f, -0.088331f, -0.085999f, -0.083005f, -0.080313f, -0.078463f, -0.076350f, -0.074634f, -0.073464f, -0.072461f, -0.071618f, -0.071914f,
-0.073335f, -0.075208f, -0.077663f, -0.080018f, -0.082090f, -0.083866f, -0.084843f, -0.085822f, -0.086673f, -0.087122f, -0.087282f, -0.087095f,
-0.086813f, -0.086034f, -0.085116f, -0.084021f, -0.082682f, -0.080938f, -0.079124f, -0.076882f, -0.075249f, -0.074062f, -0.073482f, -0.073237f,
-0.072461f, -0.071457f, -0.070422f, -0.068624f, -0.066380f, -0.063246f, -0.059971f, -0.057443f, -0.056107f, -0.057222f, -0.059355f, -0.061864f,
-0.065091f, -0.068428f, -0.071552f, -0.074658f, -0.078475f, -0.082285f, -0.086229f, -0.089821f, -0.092600f, -0.094962f, -0.096459f, -0.097155f,
-0.098055f, -0.097868f, -0.096901f, -0.095679f, -0.094632f, -0.093565f, -0.092765f, -0.091341f, -0.089050f, -0.086864f, -0.084330f, -0.081168f,
-0.077800f, -0.074554f, -0.072091f, -0.071361f, -0.071772f, -0.073514f, -0.076400f, -0.079752f, -0.082959f, -0.085342f, -0.086053f, -0.084689f,
-0.082159f, -0.078959f, -0.074585f, -0.070280f, -0.066762f, -0.064142f, -0.062933f, -0.063220f, -0.065304f, -0.067997f, -0.071308f, -0.074886f,
-0.077925f, -0.080478f, -0.082289f, -0.083733f, -0.084823f, -0.084988f, -0.084762f, -0.084052f, -0.083044f, -0.082683f, -0.082411f, -0.082197f,
-0.081984f, -0.081201f, -0.080829f, -0.080933f, -0.080454f, -0.079431f, -0.077710f, -0.075904f, -0.074388f, -0.072774f, -0.070415f, -0.067979f,
-0.064904f, -0.061050f, -0.055968f, -0.049541f, -0.041529f, -0.032721f, -0.023761f, -0.015155f, -0.006449f, 0.002009f, 0.009742f, 0.017136f,
0.023796f, 0.029679f, 0.034053f, 0.037115f, 0.040250f, 0.042903f, 0.044379f, 0.045636f, 0.046228f, 0.045512f, 0.044160f, 0.041295f,
0.036965f, 0.031145f, 0.023518f, 0.014252f, 0.003545f, -0.007327f, -0.016916f, -0.024988f, -0.030920f, -0.035553f, -0.039707f, -0.043633f,
-0.046664f, -0.049122f, -0.051453f, -0.052690f, -0.052941f, -0.052447f, -0.051104f, -0.048545f, -0.044089f, -0.039191f, -0.033340f, -0.027435f,
-0.021658f, -0.016707f, -0.013513f, -0.011243f, -0.010060f, -0.010372f, -0.012860f, -0.017272f, -0.022980f, -0.029654f, -0.037210f, -0.045341f,
-0.054105f, -0.063291f, -0.072212f, -0.080626f, -0.088771f, -0.096762f, -0.104270f, -0.111870f, -0.118723f, -0.124738f, -0.131147f, -0.137380f,
-0.143255f, -0.147794f, -0.150748f, -0.152747f, -0.153471f, -0.153498f, -0.153125f, -0.153202f, -0.153443f, -0.154134f, -0.155338f, -0.155857f,
-0.154639f, -0.152221f, -0.149208f, -0.145550f, -0.141525f, -0.138005f, -0.135891f, -0.134673f, -0.134224f, -0.134986f, -0.137683f, -0.141323f,
-0.145709f, -0.150406f, -0.159022f, -0.166011f, -0.167712f, -0.166358f, -0.164802f, -0.167947f, -0.178450f, -0.198769f, -0.230225f, -0.272297f,
-0.323386f, -0.380477f, -0.441631f, -0.505217f, -0.570293f, -0.634591f, -0.695817f, -0.752413f, -0.803602f, -0.848554f, -0.886522f, -0.918192f,
-0.943677f, -0.963282f, -0.977047f, -0.985936f, -0.990000f, -0.988899f, -0.984324f, -0.977298f, -0.969418f, -0.960836f, -0.952559f, -0.945363f,
-0.938410f, -0.931672f, -0.926692f, -0.923625f, -0.921696f, -0.920138f, -0.918377f, -0.915451f, -0.911929f, -0.908711f, -0.905199f, -0.901405f,
-0.897205f, -0.892447f, -0.886232f, -0.879403f, -0.871185f, -0.862171f, -0.852637f, -0.843053f, -0.833166f, -0.823729f, -0.814598f, -0.805576f,
-0.796650f, -0.786884f, -0.776770f, -0.766127f, -0.755148f, -0.743824f, -0.732727f, -0.723485f, -0.714829f, -0.707336f, -0.701355f, -0.697234f,
-0.693960f, -0.690997f, -0.688677f, -0.686440f, -0.684014f, -0.681969f, -0.680896f, -0.681155f, -0.682274f, -0.683071f, -0.682678f, -0.680484f,
-0.677053f, -0.673147f, -0.668237f, -0.662658f, -0.655843f, -0.647899f, -0.640047f, -0.632676f, -0.625662f, -0.619311f, -0.612920f, -0.606145f,
-0.598462f, -0.590158f, -0.581748f, -0.574144f, -0.566677f, -0.559622f, -0.552237f, -0.544642f, -0.536965f, -0.528131f, -0.518836f, -0.508467f,
-0.496592f, -0.484452f, -0.471751f, -0.458765f, -0.445626f, -0.432711f, -0.419911f, -0.407659f, -0.396820f, -0.387509f, -0.380241f, -0.375262f,
-0.371531f, -0.369278f, -0.367879f, -0.366072f, -0.364359f, -0.362847f, -0.360858f, -0.358894f, -0.356585f, -0.354140f, -0.352170f, -0.350444f,
-0.350020f, -0.350065f, -0.349853f, -0.349120f, -0.347099f, -0.343919f, -0.339760f, -0.335115f, -0.330208f, -0.325056f, -0.319666f, -0.314909f,
-0.310651f, -0.306365f, -0.302172f, -0.298505f, -0.295376f, -0.291914f, -0.288011f, -0.283712f, -0.278993f, -0.273364f, -0.267053f, -0.261014f,
-0.254918f, -0.248358f, -0.241465f, -0.234052f, -0.225813f, -0.217255f, -0.207975f, -0.197924f, -0.187582f, -0.177081f, -0.167059f, -0.156969f,
-0.146780f, -0.137089f, -0.128113f, -0.119744f, -0.111865f, -0.104536f, -0.097950f, -0.091665f, -0.085933f, -0.082281f, -0.080898f, -0.081086f,
-0.082305f, -0.083255f, -0.083812f, -0.084371f, -0.084802f, -0.085781f, -0.087597f, -0.089487f, -0.090395f, -0.090823f, -0.090816f, -0.090742f,
-0.089910f, -0.088707f, -0.088078f, -0.087046f, -0.085715f, -0.083638f, -0.080073f, -0.075646f, -0.070113f, -0.063972f, -0.058229f, -0.051610f,
-0.045657f, -0.041723f, -0.039121f, -0.038296f, -0.038916f, -0.040741f, -0.044039f, -0.048585f, -0.053437f, -0.058110f, -0.062319f, -0.065433f,
-0.067091f, -0.066777f, -0.063883f, -0.058616f, -0.051549f, -0.043475f, -0.034072f, -0.024266f, -0.014056f, -0.004109f, 0.004726f, 0.012003f,
0.018214f, 0.024456f, 0.030687f, 0.035827f, 0.039551f, 0.041481f, 0.041359f, 0.039659f, 0.037670f, 0.036240f, 0.036087f, 0.037323f,
0.039928f, 0.043376f, 0.047424f, 0.051913f, 0.056296f, 0.060451f, 0.064467f, 0.067453f, 0.069879f, 0.072295f, 0.074835f, 0.078141f,
0.082227f, 0.087164f, 0.092622f, 0.099182f, 0.106513f, 0.113768f, 0.122569f, 0.131934f, 0.140930f, 0.149000f, 0.156518f, 0.162432f,
0.166422f, 0.168199f, 0.167731f, 0.166429f, 0.164748f, 0.163819f, 0.163866f, 0.164750f, 0.166952f, 0.169508f, 0.172213f, 0.174476f,
0.177151f, 0.180000f, 0.182272f, 0.184108f, 0.184962f, 0.184947f, 0.184726f, 0.184804f, 0.184912f, 0.184383f, 0.183774f, 0.184047f,
0.184041f, 0.184345f, 0.184678f, 0.184403f, 0.183274f, 0.181666f, 0.179467f, 0.177160f, 0.174896f, 0.172613f, 0.170546f, 0.168659f,
0.167272f, 0.166465f, 0.165573f, 0.164850f, 0.164563f, 0.163608f, 0.163084f, 0.162907f, 0.163773f, 0.165475f, 0.167709f, 0.170487f,
0.173136f, 0.177124f, 0.182117f, 0.187816f, 0.193791f, 0.199215f, 0.204286f, 0.208574f, 0.211753f, 0.212486f, 0.210761f, 0.207137f,
0.201466f, 0.193607f, 0.183943f, 0.172534f, 0.159789f, 0.147575f, 0.136009f, 0.125676f, 0.117123f, 0.110140f, 0.105141f, 0.102261f,
0.101830f, 0.102588f, 0.104902f, 0.108830f, 0.113757f, 0.119498f, 0.124708f, 0.128902f, 0.131312f, 0.131794f, 0.130329f, 0.127698f,
0.124239f, 0.120451f, 0.118183f, 0.117526f, 0.118416f, 0.120660f, 0.124251f, 0.128332f, 0.131567f, 0.133116f, 0.133827f, 0.133923f,
0.133618f, 0.133239f, 0.133085f, 0.132327f, 0.131076f, 0.129133f, 0.127237f, 0.125019f, 0.122219f, 0.119371f, 0.115430f, 0.111129f,
0.107029f, 0.103333f, 0.101316f, 0.101120f, 0.102458f, 0.105463f, 0.110323f, 0.116551f, 0.123264f, 0.130516f, 0.137266f, 0.142114f,
0.145445f, 0.148000f, 0.150896f, 0.153560f, 0.155485f, 0.157618f, 0.159399f, 0.162035f, 0.166206f, 0.171394f, 0.177253f, 0.182919f,
0.188935f, 0.195596f, 0.202430f, 0.208737f, 0.213960f, 0.217544f, 0.218952f, 0.218113f, 0.216493f, 0.213931f, 0.210541f, 0.206345f,
0.202224f, 0.197403f, 0.192221f, 0.186302f, 0.179085f, 0.170179f, 0.160990f, 0.151914f, 0.142652f, 0.134142f, 0.126328f, 0.119459f,
0.113868f, 0.110355f, 0.109830f, 0.112456f, 0.117745f, 0.124472f, 0.132028f, 0.139323f, 0.145974f, 0.152278f, 0.158091f, 0.163105f,
0.166827f, 0.169958f, 0.173756f, 0.177935f, 0.182187f, 0.187396f, 0.193191f, 0.200256f, 0.207853f, 0.215818f, 0.223541f, 0.231232f,
0.238500f, 0.245331f, 0.251107f, 0.255529f, 0.258659f, 0.260563f, 0.262190f, 0.263927f, 0.266023f, 0.268113f, 0.270755f, 0.272886f,
0.274372f, 0.275220f, 0.274619f, 0.272978f, 0.270688f, 0.268571f, 0.266701f, 0.264973f, 0.263310f, 0.262161f, 0.261821f, 0.261619f,
0.261647f, 0.262669f, 0.264978f, 0.268452f, 0.273238f, 0.279124f, 0.284842f, 0.290745f, 0.297052f, 0.303981f, 0.311602f, 0.319517f,
0.327444f, 0.334053f, 0.339264f, 0.343376f, 0.345654f, 0.345258f, 0.342802f, 0.339493f, 0.335198f, 0.330364f, 0.325883f, 0.322391f,
0.320241f, 0.319278f, 0.318438f, 0.317192f, 0.315207f, 0.313996f, 0.313392f, 0.312336f, 0.312148f, 0.312538f, 0.313610f, 0.314988f,
0.316053f, 0.316355f, 0.316100f, 0.314913f, 0.313873f, 0.312905f, 0.309729f, 0.304859f, 0.299032f, 0.292897f, 0.286631f, 0.279700f,
0.272376f, 0.265196f, 0.258133f, 0.251406f, 0.245655f, 0.239785f, 0.233421f, 0.227504f, 0.221627f, 0.216180f, 0.211842f, 0.208499f,
0.207245f, 0.207939f, 0.210442f, 0.214723f, 0.220054f, 0.227310f, 0.235766f, 0.244378f, 0.253537f, 0.262899f, 0.272160f, 0.280830f,
0.288984f, 0.295874f, 0.301093f, 0.304082f, 0.304769f, 0.303942f, 0.301854f, 0.299689f, 0.297721f, 0.296238f, 0.295221f, 0.294798f,
0.295287f, 0.296903f, 0.299116f, 0.300514f, 0.301290f, 0.302278f, 0.302904f, 0.303012f, 0.302844f, 0.302387f, 0.300835f, 0.297566f,
0.292237f, 0.286167f, 0.279576f, 0.273125f, 0.267628f, 0.263259f, 0.259615f, 0.257415f, 0.256631f, 0.256087f, 0.255754f, 0.255520f,
0.255274f, 0.255259f, 0.254659f, 0.252901f, 0.250630f, 0.248546f, 0.246550f, 0.245357f, 0.245329f, 0.245960f, 0.247588f, 0.249903f,
0.252223f, 0.254157f, 0.255373f, 0.256426f, 0.258039f, 0.258947f, 0.259041f, 0.258661f, 0.258151f, 0.257693f, 0.257165f, 0.256269f,
};


#define mid_saw_count 1200

SGFLT mid_saw_array[mid_saw_count]  = {
0.041061f, 0.041234f, 0.041406f, 0.041579f, 0.041751f, 0.041923f, 0.042095f, 0.042267f, 0.042439f, 0.042610f, 0.042782f, 0.042953f,
0.043124f, 0.043295f, 0.043466f, 0.043637f, 0.043808f, 0.043978f, 0.044149f, 0.044319f, 0.044489f, 0.044659f, 0.044829f, 0.044998f,
0.045168f, 0.045337f, 0.045506f, 0.045675f, 0.045844f, 0.046013f, 0.046182f, 0.046350f, 0.046518f, 0.046686f, 0.046854f, 0.047022f,
0.047190f, 0.047357f, 0.047524f, 0.047691f, 0.047858f, 0.048025f, 0.048191f, 0.048358f, 0.048524f, 0.048690f, 0.048856f, 0.049021f,
0.049187f, 0.049352f, 0.049517f, 0.049682f, 0.049846f, 0.050011f, 0.050175f, 0.050339f, 0.050503f, 0.050666f, 0.050830f, 0.050993f,
0.051156f, 0.051319f, 0.051481f, 0.051644f, 0.051806f, 0.051968f, 0.052129f, 0.052291f, 0.052452f, 0.052613f, 0.052774f, 0.052935f,
0.053095f, 0.053255f, 0.053415f, 0.053575f, 0.053734f, 0.053893f, 0.054052f, 0.054211f, 0.054370f, 0.054528f, 0.054686f, 0.054844f,
0.055001f, 0.055159f, 0.055316f, 0.055473f, 0.055629f, 0.055786f, 0.055942f, 0.056098f, 0.056254f, 0.056409f, 0.056564f, 0.056719f,
0.056874f, 0.057028f, 0.057182f, 0.057336f, 0.057490f, 0.057643f, 0.057796f, 0.057949f, 0.058102f, 0.058254f, 0.058406f, 0.058558f,
0.058710f, 0.058861f, 0.059012f, 0.059163f, 0.059314f, 0.059464f, 0.059614f, 0.059764f, 0.059913f, 0.060063f, 0.060212f, 0.060360f,
0.060509f, 0.060657f, 0.060805f, 0.060953f, 0.061100f, 0.061247f, 0.061394f, 0.061541f, 0.061687f, 0.061833f, 0.061979f, 0.062124f,
0.062270f, 0.062414f, 0.062559f, 0.062704f, 0.062848f, 0.062992f, 0.063135f, 0.063279f, 0.063422f, 0.063565f, 0.063707f, 0.063849f,
0.063991f, 0.064133f, 0.064274f, 0.064416f, 0.064556f, 0.064697f, 0.064837f, 0.064977f, 0.065117f, 0.065257f, 0.065396f, 0.065535f,
0.065674f, 0.065812f, 0.065950f, 0.066088f, 0.066225f, 0.066363f, 0.066500f, 0.066636f, 0.066773f, 0.066909f, 0.067045f, 0.067181f,
0.067316f, 0.067451f, 0.067586f, 0.067720f, 0.067855f, 0.067988f, 0.068122f, 0.068255f, 0.068389f, 0.068521f, 0.068654f, 0.068786f,
0.068918f, 0.069050f, 0.069181f, 0.069313f, 0.069443f, 0.069574f, 0.069704f, 0.069834f, 0.069964f, 0.070094f, 0.070223f, 0.070352f,
0.070480f, 0.070609f, 0.070737f, 0.070864f, 0.070992f, 0.071119f, 0.071246f, 0.071373f, 0.071499f, 0.071625f, 0.071751f, 0.071877f,
0.072002f, 0.072127f, 0.072252f, 0.072376f, 0.072500f, 0.072624f, 0.072748f, 0.072871f, 0.072994f, 0.073117f, 0.073239f, 0.073362f,
0.073484f, 0.073605f, 0.073727f, 0.073848f, 0.073968f, 0.074089f, 0.074209f, 0.074329f, 0.074449f, 0.074568f, 0.074687f, 0.074806f,
0.074925f, 0.075043f, 0.075161f, 0.075279f, 0.075396f, 0.075514f, 0.075630f, 0.075747f, 0.075863f, 0.075980f, 0.076095f, 0.076211f,
0.076326f, 0.076441f, 0.076556f, 0.076670f, 0.076784f, 0.076898f, 0.077012f, 0.077125f, 0.077238f, 0.077351f, 0.077463f, 0.077576f,
0.077688f, 0.077799f, 0.077911f, 0.078022f, 0.078133f, 0.078243f, 0.078353f, 0.078463f, 0.078573f, 0.078683f, 0.078792f, 0.078901f,
0.079009f, 0.079118f, 0.079226f, 0.079334f, 0.079441f, 0.079548f, 0.079655f, 0.079762f, 0.079869f, 0.079975f, 0.080081f, 0.080186f,
0.080292f, 0.080397f, 0.080502f, 0.080606f, 0.080710f, 0.080814f, 0.080918f, 0.081022f, 0.081125f, 0.081228f, 0.081330f, 0.081433f,
0.081535f, 0.081637f, 0.081738f, 0.081839f, 0.081941f, 0.082041f, 0.082142f, 0.082242f, 0.082342f, 0.082442f, 0.082541f, 0.082640f,
0.082739f, 0.082838f, 0.082936f, 0.083034f, 0.083132f, 0.083229f, 0.083327f, 0.083424f, 0.083520f, 0.083617f, 0.083713f, 0.083809f,
0.083905f, 0.084000f, 0.084095f, 0.084190f, 0.084285f, 0.084379f, 0.084473f, 0.084567f, 0.084660f, 0.084754f, 0.084847f, 0.084939f,
0.085032f, 0.085124f, 0.085216f, 0.085308f, 0.085399f, 0.085490f, 0.085581f, 0.085672f, 0.085762f, 0.085852f, 0.085942f, 0.086032f,
0.086121f, 0.086210f, 0.086299f, 0.086387f, 0.086476f, 0.086564f, 0.086651f, 0.086739f, 0.086826f, 0.086913f, 0.087000f, 0.087086f,
0.087172f, 0.087258f, 0.087344f, 0.087429f, 0.087515f, 0.087599f, 0.087684f, 0.087768f, 0.087853f, 0.087936f, 0.088020f, 0.088103f,
0.088186f, 0.088269f, 0.088352f, 0.088434f, 0.088516f, 0.088598f, 0.088679f, 0.088761f, 0.088842f, 0.088923f, 0.089003f, 0.089083f,
0.089163f, 0.089243f, 0.089323f, 0.089402f, 0.089481f, 0.089559f, 0.089638f, 0.089716f, 0.089794f, 0.089872f, 0.089949f, 0.090027f,
0.090103f, 0.090180f, 0.090257f, 0.090333f, 0.090409f, 0.090484f, 0.090560f, 0.090635f, 0.090710f, 0.090785f, 0.090859f, 0.090933f,
0.091007f, 0.091081f, 0.091154f, 0.091227f, 0.091300f, 0.091373f, 0.091445f, 0.091518f, 0.091590f, 0.091661f, 0.091733f, 0.091804f,
0.091875f, 0.091945f, 0.092016f, 0.092086f, 0.092156f, 0.092226f, 0.092295f, 0.092364f, 0.092433f, 0.092502f, 0.092570f, 0.092639f,
0.092707f, 0.092774f, 0.092842f, 0.092909f, 0.092976f, 0.093043f, 0.093109f, 0.093176f, 0.093242f, 0.093307f, 0.093373f, 0.093438f,
0.093503f, 0.093568f, 0.093632f, 0.093697f, 0.093761f, 0.093825f, 0.093888f, 0.093951f, 0.094015f, 0.094077f, 0.094140f, 0.094202f,
0.094265f, 0.094326f, 0.094388f, 0.094449f, 0.094511f, 0.094572f, 0.094632f, 0.094693f, 0.094753f, 0.094813f, 0.094873f, 0.094932f,
0.094991f, 0.095050f, 0.095109f, 0.095168f, 0.095226f, 0.095284f, 0.095342f, 0.095399f, 0.095457f, 0.095514f, 0.095571f, 0.095627f,
0.095684f, 0.095740f, 0.095796f, 0.095851f, 0.095907f, 0.095962f, 0.096017f, 0.096072f, 0.096126f, 0.096181f, 0.096235f, 0.096288f,
0.096342f, 0.096395f, 0.096448f, 0.096501f, 0.096554f, 0.096606f, 0.096659f, 0.096711f, 0.096762f, 0.096814f, 0.096865f, 0.096916f,
0.096967f, 0.097017f, 0.097068f, 0.097118f, 0.097168f, 0.097217f, 0.097267f, 0.097316f, 0.097365f, 0.097414f, 0.097462f, 0.097510f,
0.097558f, 0.097606f, 0.097654f, 0.097701f, 0.097748f, 0.097795f, 0.097842f, 0.097888f, 0.097935f, 0.097981f, 0.098026f, 0.098072f,
0.098117f, 0.098162f, 0.098207f, 0.098252f, 0.098296f, 0.098340f, 0.098384f, 0.098428f, 0.098472f, 0.098515f, 0.098558f, 0.098601f,
0.098643f, 0.098686f, 0.098728f, 0.098770f, 0.098812f, 0.098853f, 0.098895f, 0.098936f, 0.098976f, 0.099017f, 0.099057f, 0.099098f,
0.099138f, 0.099177f, 0.099217f, 0.099256f, 0.099295f, 0.099334f, 0.099373f, 0.099411f, 0.099449f, 0.099487f, 0.099525f, 0.099563f,
0.099600f, 0.099637f, 0.099674f, 0.099711f, 0.099747f, 0.099783f, 0.099819f, 0.099855f, 0.099891f, 0.099926f, 0.099961f, 0.099996f,
0.100031f, 0.100066f, 0.100100f, 0.100134f, 0.100168f, 0.100202f, 0.100235f, 0.100268f, 0.100301f, 0.100334f, 0.100367f, 0.100399f,
0.100431f, 0.100463f, 0.100495f, 0.100526f, 0.100558f, 0.100589f, 0.100620f, 0.100650f, 0.100681f, 0.100711f, 0.100741f, 0.100771f,
0.100801f, 0.100830f, 0.100859f, 0.100888f, 0.100917f, 0.100946f, 0.100974f, 0.101002f, 0.101030f, 0.101058f, 0.101085f, 0.101113f,
0.101140f, 0.101167f, 0.101851f, 0.099686f, 0.098977f, 0.101709f, 0.107205f, 0.112735f, 0.114470f, 0.108405f, 0.091112f, 0.060227f,
0.014687f, -0.045240f, -0.118101f, -0.201492f, -0.292361f, -0.387306f, -0.482867f, -0.575762f, -0.663080f, -0.742409f, -0.811909f, -0.870336f,
-0.917026f, -0.951840f, -0.975099f, -0.987494f, -0.990000f, -0.983783f, -0.970121f, -0.950332f, -0.925712f, -0.897487f, -0.866776f, -0.834573f,
-0.801727f, -0.768942f, -0.736779f, -0.705664f, -0.675902f, -0.647691f, -0.621139f, -0.596279f, -0.573087f, -0.551494f, -0.531403f, -0.512696f,
-0.495245f, -0.478922f, -0.463599f, -0.449158f, -0.435492f, -0.422504f, -0.410110f, -0.398240f, -0.386835f, -0.375847f, -0.365238f, -0.354978f,
-0.345044f, -0.335418f, -0.326089f, -0.317046f, -0.308282f, -0.299793f, -0.291573f, -0.283619f, -0.275926f, -0.268490f, -0.261308f, -0.254374f,
-0.247682f, -0.241228f, -0.235004f, -0.229005f, -0.223223f, -0.217652f, -0.212283f, -0.207112f, -0.202129f, -0.197328f, -0.192703f, -0.188246f,
-0.183952f, -0.179813f, -0.175824f, -0.171980f, -0.168273f, -0.164700f, -0.161255f, -0.157933f, -0.154729f, -0.151640f, -0.148660f, -0.145786f,
-0.143014f, -0.140340f, -0.137760f, -0.135270f, -0.132868f, -0.130551f, -0.128314f, -0.126155f, -0.124072f, -0.122060f, -0.120119f, -0.118244f,
-0.116434f, -0.114686f, -0.112998f, -0.111367f, -0.109792f, -0.108269f, -0.106798f, -0.105376f, -0.104002f, -0.102673f, -0.101387f, -0.100144f,
-0.098941f, -0.097777f, -0.096651f, -0.095560f, -0.094505f, -0.093482f, -0.092491f, -0.091531f, -0.090600f, -0.089697f, -0.088822f, -0.087973f,
-0.087149f, -0.086349f, -0.085572f, -0.084817f, -0.084084f, -0.083371f, -0.082678f, -0.082003f, -0.081347f, -0.080708f, -0.080086f, -0.079479f,
-0.078888f, -0.078312f, -0.077749f, -0.077201f, -0.076665f, -0.076141f, -0.075629f, -0.075129f, -0.074640f, -0.074161f, -0.073692f, -0.073233f,
-0.072783f, -0.072341f, -0.071908f, -0.071483f, -0.071066f, -0.070656f, -0.070253f, -0.069857f, -0.069467f, -0.069084f, -0.068706f, -0.068334f,
-0.067967f, -0.067605f, -0.067248f, -0.066896f, -0.066548f, -0.066204f, -0.065865f, -0.065529f, -0.065197f, -0.064868f, -0.064543f, -0.064221f,
-0.063902f, -0.063586f, -0.063272f, -0.062961f, -0.062652f, -0.062346f, -0.062042f, -0.061740f, -0.061440f, -0.061142f, -0.060846f, -0.060551f,
-0.060258f, -0.059967f, -0.059677f, -0.059388f, -0.059100f, -0.058814f, -0.058529f, -0.058245f, -0.057962f, -0.057680f, -0.057399f, -0.057118f,
-0.056838f, -0.056560f, -0.056281f, -0.056004f, -0.055727f, -0.055450f, -0.055174f, -0.054899f, -0.054624f, -0.054349f, -0.054075f, -0.053801f,
-0.053528f, -0.053254f, -0.052981f, -0.052709f, -0.052436f, -0.052164f, -0.051892f, -0.051620f, -0.051348f, -0.051076f, -0.050805f, -0.050533f,
-0.050262f, -0.049991f, -0.049720f, -0.049448f, -0.049177f, -0.048906f, -0.048635f, -0.048364f, -0.048093f, -0.047822f, -0.047551f, -0.047280f,
-0.047009f, -0.046738f, -0.046467f, -0.046196f, -0.045925f, -0.045653f, -0.045382f, -0.045111f, -0.044840f, -0.044568f, -0.044297f, -0.044026f,
-0.043754f, -0.043483f, -0.043211f, -0.042940f, -0.042668f, -0.042397f, -0.042125f, -0.041853f, -0.041582f, -0.041310f, -0.041038f, -0.040766f,
-0.040494f, -0.040223f, -0.039951f, -0.039679f, -0.039407f, -0.039135f, -0.038863f, -0.038591f, -0.038319f, -0.038047f, -0.037775f, -0.037503f,
-0.037231f, -0.036959f, -0.036687f, -0.036415f, -0.036143f, -0.035871f, -0.035600f, -0.035328f, -0.035056f, -0.034784f, -0.034512f, -0.034241f,
-0.033969f, -0.033698f, -0.033426f, -0.033155f, -0.032883f, -0.032612f, -0.032341f, -0.032069f, -0.031798f, -0.031527f, -0.031256f, -0.030985f,
-0.030715f, -0.030444f, -0.030173f, -0.029903f, -0.029632f, -0.029362f, -0.029092f, -0.028822f, -0.028552f, -0.028282f, -0.028012f, -0.027743f,
-0.027473f, -0.027204f, -0.026934f, -0.026665f, -0.026396f, -0.026128f, -0.025859f, -0.025591f, -0.025322f, -0.025054f, -0.024786f, -0.024518f,
-0.024250f, -0.023983f, -0.023715f, -0.023448f, -0.023181f, -0.022914f, -0.022648f, -0.022381f, -0.022115f, -0.021849f, -0.021583f, -0.021317f,
-0.021051f, -0.020786f, -0.020521f, -0.020256f, -0.019991f, -0.019727f, -0.019462f, -0.019198f, -0.018934f, -0.018670f, -0.018407f, -0.018143f,
-0.017880f, -0.017617f, -0.017355f, -0.017092f, -0.016830f, -0.016568f, -0.016306f, -0.016045f, -0.015784f, -0.015522f, -0.015262f, -0.015001f,
-0.014741f, -0.014481f, -0.014221f, -0.013961f, -0.013702f, -0.013442f, -0.013184f, -0.012925f, -0.012666f, -0.012408f, -0.012150f, -0.011893f,
-0.011635f, -0.011378f, -0.011121f, -0.010865f, -0.010608f, -0.010352f, -0.010096f, -0.009841f, -0.009585f, -0.009330f, -0.009075f, -0.008821f,
-0.008567f, -0.008313f, -0.008059f, -0.007805f, -0.007552f, -0.007299f, -0.007047f, -0.006794f, -0.006542f, -0.006290f, -0.006039f, -0.005788f,
-0.005537f, -0.005286f, -0.005035f, -0.004785f, -0.004535f, -0.004286f, -0.004037f, -0.003788f, -0.003539f, -0.003290f, -0.003042f, -0.002794f,
-0.002547f, -0.002300f, -0.002053f, -0.001806f, -0.001559f, -0.001313f, -0.001068f, -0.000822f, -0.000577f, -0.000332f, -0.000087f, 0.000157f,
0.000401f, 0.000645f, 0.000889f, 0.001132f, 0.001375f, 0.001617f, 0.001860f, 0.002102f, 0.002343f, 0.002585f, 0.002826f, 0.003067f,
0.003307f, 0.003547f, 0.003787f, 0.004027f, 0.004266f, 0.004505f, 0.004744f, 0.004982f, 0.005220f, 0.005458f, 0.005695f, 0.005933f,
0.006170f, 0.006406f, 0.006642f, 0.006878f, 0.007114f, 0.007349f, 0.007584f, 0.007819f, 0.008054f, 0.008288f, 0.008522f, 0.008755f,
0.008988f, 0.009221f, 0.009454f, 0.009686f, 0.009918f, 0.010150f, 0.010381f, 0.010612f, 0.010843f, 0.011073f, 0.011303f, 0.011533f,
0.011763f, 0.011992f, 0.012221f, 0.012449f, 0.012678f, 0.012906f, 0.013133f, 0.013361f, 0.013588f, 0.013814f, 0.014041f, 0.014267f,
0.014493f, 0.014718f, 0.014943f, 0.015168f, 0.015393f, 0.015617f, 0.015841f, 0.016064f, 0.016288f, 0.016511f, 0.016733f, 0.016956f,
0.017178f, 0.017399f, 0.017621f, 0.017842f, 0.018063f, 0.018283f, 0.018503f, 0.018723f, 0.018943f, 0.019162f, 0.019381f, 0.019599f,
0.019818f, 0.020036f, 0.020253f, 0.020471f, 0.020688f, 0.020904f, 0.021121f, 0.021337f, 0.021553f, 0.021768f, 0.021983f, 0.022198f,
0.022412f, 0.022627f, 0.022841f, 0.023054f, 0.023267f, 0.023480f, 0.023693f, 0.023905f, 0.024117f, 0.024329f, 0.024540f, 0.024751f,
0.024962f, 0.025172f, 0.025383f, 0.025592f, 0.025802f, 0.026011f, 0.026220f, 0.026428f, 0.026637f, 0.026845f, 0.027052f, 0.027260f,
0.027467f, 0.027673f, 0.027880f, 0.028086f, 0.028291f, 0.028497f, 0.028702f, 0.028907f, 0.029111f, 0.029315f, 0.029519f, 0.029723f,
0.029926f, 0.030129f, 0.030331f, 0.030534f, 0.030735f, 0.030937f, 0.031138f, 0.031339f, 0.031540f, 0.031741f, 0.031941f, 0.032140f,
0.032340f, 0.032539f, 0.032738f, 0.032936f, 0.033135f, 0.033332f, 0.033530f, 0.033727f, 0.033924f, 0.034121f, 0.034317f, 0.034513f,
0.034709f, 0.034904f, 0.035099f, 0.035294f, 0.035489f, 0.035683f, 0.035876f, 0.036070f, 0.036263f, 0.036456f, 0.036649f, 0.036841f,
0.037033f, 0.037224f, 0.037416f, 0.037607f, 0.037798f, 0.037988f, 0.038178f, 0.038368f, 0.038557f, 0.038746f, 0.038935f, 0.039124f,
};


#define lush_saw_count 1200

SGFLT lush_saw_array[lush_saw_count]  = {
0.070129f, 0.071874f, 0.073616f, 0.075356f, 0.077094f, 0.078828f, 0.080561f, 0.082291f, 0.084018f, 0.085743f, 0.087465f, 0.089185f,
0.090902f, 0.092617f, 0.094329f, 0.096039f, 0.097747f, 0.099452f, 0.101154f, 0.102854f, 0.104552f, 0.106247f, 0.107940f, 0.109631f,
0.111319f, 0.113004f, 0.114687f, 0.116368f, 0.118046f, 0.119722f, 0.121395f, 0.123066f, 0.124735f, 0.126401f, 0.128065f, 0.129726f,
0.131385f, 0.133042f, 0.134696f, 0.136348f, 0.137997f, 0.139644f, 0.141289f, 0.142931f, 0.144571f, 0.146209f, 0.147844f, 0.149476f,
0.151107f, 0.152735f, 0.155932f, 0.151733f, 0.153337f, 0.162617f, 0.175547f, 0.184980f, 0.183663f, 0.166044f, 0.129152f, 0.072727f,
-0.001117f, -0.088484f, -0.184382f, -0.283384f, -0.380191f, -0.470076f, -0.549172f, -0.614638f, -0.664708f, -0.698638f, -0.716601f, -0.719529f,
-0.708935f, -0.686737f, -0.655083f, -0.616200f, -0.572270f, -0.525331f, -0.477202f, -0.429439f, -0.383313f, -0.339807f, -0.299627f, -0.263225f,
-0.230831f, -0.202487f, -0.178084f, -0.157397f, -0.140120f, -0.125895f, -0.114335f, -0.105052f, -0.097667f, -0.091824f, -0.087201f, -0.083514f,
-0.080518f, -0.078007f, -0.075814f, -0.073809f, -0.071891f, -0.069988f, -0.068050f, -0.066048f, -0.063966f, -0.061799f, -0.059553f, -0.057237f,
-0.054863f, -0.052447f, -0.050003f, -0.047546f, -0.045088f, -0.042639f, -0.040210f, -0.036235f, -0.039686f, -0.037366f, -0.027403f, -0.013825f,
-0.003777f, -0.004513f, -0.021580f, -0.057949f, -0.113878f, -0.187249f, -0.274164f, -0.369628f, -0.468212f, -0.564616f, -0.654110f, -0.732826f,
-0.797922f, -0.847629f, -0.881203f, -0.898817f, -0.901402f, -0.890470f, -0.867938f, -0.835954f, -0.796745f, -0.752494f, -0.705236f, -0.656791f,
-0.608715f, -0.562280f, -0.518467f, -0.477983f, -0.441280f, -0.408587f, -0.379946f, -0.355248f, -0.334268f, -0.316701f, -0.302186f, -0.290339f,
-0.280770f, -0.273101f, -0.266975f, -0.262071f, -0.258104f, -0.254829f, -0.252040f, -0.249570f, -0.247289f, -0.245096f, -0.242919f, -0.240708f,
-0.238433f, -0.236079f, -0.233641f, -0.231125f, -0.228538f, -0.225895f, -0.223210f, -0.220498f, -0.217773f, -0.215047f, -0.212332f, -0.209636f,
-0.206967f, -0.204329f, -0.201726f, -0.199160f, -0.196631f, -0.194138f, -0.191680f, -0.189256f, -0.186863f, -0.184499f, -0.182161f, -0.179846f,
-0.177552f, -0.175277f, -0.173019f, -0.170776f, -0.168546f, -0.166329f, -0.164121f, -0.161924f, -0.159735f, -0.157555f, -0.155382f, -0.153216f,
-0.151057f, -0.148904f, -0.146757f, -0.144616f, -0.142481f, -0.140352f, -0.138228f, -0.136109f, -0.133995f, -0.131886f, -0.129782f, -0.127683f,
-0.125588f, -0.123498f, -0.121412f, -0.119331f, -0.117254f, -0.115180f, -0.113111f, -0.111046f, -0.108984f, -0.106926f, -0.104872f, -0.102821f,
-0.100774f, -0.098730f, -0.096689f, -0.094652f, -0.092618f, -0.090587f, -0.088560f, -0.086535f, -0.084514f, -0.082495f, -0.080480f, -0.078467f,
-0.076457f, -0.074451f, -0.072447f, -0.070446f, -0.068448f, -0.066452f, -0.064460f, -0.062470f, -0.060483f, -0.058499f, -0.056517f, -0.054538f,
-0.052562f, -0.050589f, -0.048618f, -0.046649f, -0.044684f, -0.042721f, -0.040761f, -0.038803f, -0.036848f, -0.034895f, -0.032945f, -0.030998f,
-0.029053f, -0.027111f, -0.025171f, -0.023234f, -0.021300f, -0.019368f, -0.017438f, -0.015512f, -0.013587f, -0.011665f, -0.009746f, -0.007829f,
-0.005915f, -0.004004f, -0.002094f, -0.000188f, 0.001716f, 0.003618f, 0.005517f, 0.007414f, 0.009308f, 0.012772f, 0.008838f, 0.010708f,
0.020254f, 0.033449f, 0.043148f, 0.042096f, 0.024743f, -0.011884f, -0.068044f, -0.141623f, -0.228726f, -0.324359f, -0.423096f, -0.519639f,
-0.609259f, -0.688091f, -0.753294f, -0.803099f, -0.836765f, -0.854464f, -0.857129f, -0.846272f, -0.823810f, -0.791892f, -0.752746f, -0.708554f,
-0.661352f, -0.612960f, -0.564934f, -0.518545f, -0.474777f, -0.434334f, -0.397670f, -0.365014f, -0.336408f, -0.311743f, -0.290795f, -0.273256f,
-0.258769f, -0.246948f, -0.237403f, -0.229757f, -0.223653f, -0.218769f, -0.214821f, -0.211564f, -0.208792f, -0.206339f, -0.204073f, -0.201895f,
-0.199732f, -0.197534f, -0.195272f, -0.192930f, -0.190504f, -0.187998f, -0.185422f, -0.182789f, -0.180114f, -0.177411f, -0.174694f, -0.171977f,
-0.169270f, -0.166583f, -0.163921f, -0.161291f, -0.158696f, -0.156136f, -0.153614f, -0.151128f, -0.148677f, -0.146260f, -0.143873f, -0.141515f,
-0.139183f, -0.136874f, -0.134586f, -0.132318f, -0.130065f, -0.127828f, -0.125604f, -0.123392f, -0.121190f, -0.118998f, -0.116815f, -0.114640f,
-0.112473f, -0.110313f, -0.108159f, -0.106012f, -0.103871f, -0.101736f, -0.099606f, -0.097482f, -0.095364f, -0.093250f, -0.091142f, -0.089039f,
-0.086941f, -0.084847f, -0.082759f, -0.080674f, -0.078594f, -0.076519f, -0.074447f, -0.072380f, -0.070317f, -0.068257f, -0.066202f, -0.064150f,
-0.062102f, -0.060058f, -0.058017f, -0.055979f, -0.053945f, -0.051914f, -0.049887f, -0.047862f, -0.045841f, -0.043824f, -0.041809f, -0.039797f,
-0.037788f, -0.035783f, -0.033780f, -0.031780f, -0.029784f, -0.027790f, -0.025799f, -0.023811f, -0.021826f, -0.019843f, -0.017863f, -0.015887f,
-0.013913f, -0.011941f, -0.009973f, -0.008007f, -0.006044f, -0.004083f, -0.002126f, -0.000171f, 0.001782f, 0.003731f, 0.005678f, 0.007623f,
0.009564f, 0.011503f, 0.013440f, 0.015373f, 0.017305f, 0.019233f, 0.021159f, 0.023082f, 0.025003f, 0.026921f, 0.028836f, 0.030749f,
0.032660f, 0.034567f, 0.036473f, 0.038375f, 0.040275f, 0.042172f, 0.044067f, 0.045960f, 0.047849f, 0.049736f, 0.051621f, 0.053503f,
0.055382f, 0.057259f, 0.059133f, 0.061005f, 0.062874f, 0.064741f, 0.066605f, 0.068467f, 0.070326f, 0.072182f, 0.074036f, 0.075888f,
0.077737f, 0.079583f, 0.081427f, 0.083269f, 0.085107f, 0.086944f, 0.088777f, 0.090609f, 0.092437f, 0.094263f, 0.096087f, 0.097907f,
0.099726f, 0.101541f, 0.103354f, 0.105165f, 0.106973f, 0.108778f, 0.110581f, 0.112382f, 0.114180f, 0.115975f, 0.117768f, 0.119558f,
0.121346f, 0.123131f, 0.124914f, 0.126694f, 0.128472f, 0.130247f, 0.132019f, 0.133790f, 0.135557f, 0.137322f, 0.139085f, 0.140845f,
0.142602f, 0.144357f, 0.146110f, 0.147859f, 0.149607f, 0.151352f, 0.153094f, 0.154834f, 0.156571f, 0.158306f, 0.160038f, 0.161768f,
0.163495f, 0.165219f, 0.166941f, 0.168661f, 0.170378f, 0.172093f, 0.173805f, 0.175514f, 0.177221f, 0.178926f, 0.180628f, 0.182327f,
0.184024f, 0.185718f, 0.187410f, 0.189099f, 0.190786f, 0.192470f, 0.194152f, 0.195831f, 0.197508f, 0.199182f, 0.200854f, 0.202523f,
0.204190f, 0.205854f, 0.207516f, 0.209175f, 0.210832f, 0.212486f, 0.214137f, 0.215786f, 0.217433f, 0.219077f, 0.220719f, 0.222358f,
0.223994f, 0.225628f, 0.227260f, 0.228889f, 0.230515f, 0.232139f, 0.233761f, 0.235380f, 0.236996f, 0.238610f, 0.240222f, 0.241831f,
0.243437f, 0.245041f, 0.246643f, 0.248242f, 0.249838f, 0.251432f, 0.253024f, 0.254613f, 0.256199f, 0.257783f, 0.259364f, 0.260943f,
0.262520f, 0.264094f, 0.265665f, 0.267234f, 0.268801f, 0.270365f, 0.271926f, 0.273485f, 0.275042f, 0.276596f, 0.278147f, 0.279697f,
0.281243f, 0.282787f, 0.284329f, 0.285868f, 0.287404f, 0.288939f, 0.290470f, 0.291999f, 0.293526f, 0.295050f, 0.296572f, 0.298091f,
0.299608f, 0.301122f, 0.302634f, 0.304143f, 0.305650f, 0.307154f, 0.308656f, 0.310156f, 0.311652f, 0.313147f, 0.316211f, 0.311878f,
0.313348f, 0.322495f, 0.335290f, 0.344590f, 0.343138f, 0.325385f, 0.288359f, 0.231800f, 0.157821f, 0.070319f, -0.025713f, -0.124849f,
-0.221792f, -0.311812f, -0.391042f, -0.456644f, -0.506849f, -0.540914f, -0.559012f, -0.562076f, -0.551618f, -0.529556f, -0.498037f, -0.459290f,
-0.415496f, -0.368694f, -0.320700f, -0.273073f, -0.227084f, -0.183714f, -0.143670f, -0.107405f, -0.075148f, -0.046941f, -0.022674f, -0.002124f,
0.015016f, 0.029104f, 0.040526f, 0.049672f, 0.056921f, 0.062626f, 0.067111f, 0.070660f, 0.073519f, 0.075893f, 0.077947f, 0.079815f,
0.081595f, 0.083360f, 0.085160f, 0.087024f, 0.088967f, 0.090995f, 0.093103f, 0.095281f, 0.097516f, 0.099794f, 0.102099f, 0.104417f,
0.106736f, 0.109045f, 0.111335f, 0.113599f, 0.115832f, 0.118030f, 0.120191f, 0.122316f, 0.124405f, 0.126458f, 0.128478f, 0.130468f,
0.132429f, 0.134364f, 0.136275f, 0.138166f, 0.140038f, 0.141893f, 0.143733f, 0.145561f, 0.147376f, 0.149181f, 0.150976f, 0.152762f,
0.154541f, 0.156312f, 0.158076f, 0.159833f, 0.161584f, 0.163329f, 0.165068f, 0.166801f, 0.168529f, 0.170251f, 0.171969f, 0.173681f,
0.175388f, 0.177091f, 0.178789f, 0.180482f, 0.182171f, 0.183855f, 0.185535f, 0.187211f, 0.188883f, 0.190551f, 0.192216f, 0.193876f,
0.195533f, 0.197186f, 0.198836f, 0.200482f, 0.202125f, 0.203764f, 0.205400f, 0.207033f, 0.208663f, 0.210290f, 0.211914f, 0.213534f,
0.215152f, 0.216767f, 0.218378f, 0.219987f, 0.221593f, 0.223196f, 0.224796f, 0.226394f, 0.227989f, 0.229580f, 0.231170f, 0.232756f,
0.234340f, 0.235921f, 0.237499f, 0.239075f, 0.240648f, 0.242219f, 0.243786f, 0.245352f, 0.246914f, 0.248474f, 0.250032f, 0.251587f,
0.253139f, 0.254689f, 0.256236f, 0.257781f, 0.259323f, 0.260862f, 0.262399f, 0.263934f, 0.265466f, 0.266995f, 0.268522f, 0.270047f,
0.271569f, 0.273089f, 0.274606f, 0.276120f, 0.277632f, 0.279142f, 0.280649f, 0.282154f, 0.283656f, 0.285156f, 0.286653f, 0.288148f,
0.289640f, 0.291130f, 0.292617f, 0.294102f, 0.295585f, 0.297065f, 0.298542f, 0.300018f, 0.301490f, 0.302961f, 0.304429f, 0.305894f,
0.307357f, 0.308818f, 0.310276f, 0.311731f, 0.313185f, 0.314635f, 0.316084f, 0.317530f, 0.318973f, 0.320414f, 0.321853f, 0.323289f,
0.324723f, 0.326155f, 0.327584f, 0.329010f, 0.330434f, 0.331856f, 0.333275f, 0.334692f, 0.336107f, 0.337519f, 0.338929f, 0.340336f,
0.341741f, 0.343143f, 0.344543f, 0.345941f, 0.347336f, 0.348729f, 0.350119f, 0.351507f, 0.352893f, 0.354276f, 0.355657f, 0.357035f,
0.358411f, 0.359785f, 0.361156f, 0.362525f, 0.363891f, 0.365255f, 0.366617f, 0.367976f, 0.369333f, 0.370687f, 0.372040f, 0.373389f,
0.374736f, 0.376081f, 0.377424f, 0.378764f, 0.380102f, 0.381437f, 0.382770f, 0.384100f, 0.385429f, 0.386754f, 0.388078f, 0.389399f,
0.390717f, 0.392034f, 0.393348f, 0.394659f, 0.395968f, 0.397275f, 0.398579f, 0.399881f, 0.401181f, 0.402478f, 0.403773f, 0.405066f,
0.406356f, 0.407644f, 0.408929f, 0.410212f, 0.411493f, 0.412771f, 0.414047f, 0.415321f, 0.416592f, 0.417861f, 0.419127f, 0.420392f,
0.421653f, 0.422913f, 0.424170f, 0.425425f, 0.426677f, 0.427927f, 0.429175f, 0.430420f, 0.431663f, 0.432904f, 0.434142f, 0.435378f,
0.436611f, 0.437843f, 0.439072f, 0.440298f, 0.441522f, 0.442744f, 0.443964f, 0.445181f, 0.446396f, 0.447608f, 0.448818f, 0.450026f,
0.451232f, 0.452435f, 0.453636f, 0.454834f, 0.456030f, 0.457224f, 0.458416f, 0.459605f, 0.460792f, 0.461976f, 0.463159f, 0.464339f,
0.465516f, 0.466691f, 0.467864f, 0.469035f, 0.470203f, 0.471369f, 0.472533f, 0.473694f, 0.474853f, 0.476010f, 0.477164f, 0.478316f,
0.479466f, 0.480613f, 0.481759f, 0.482901f, 0.484042f, 0.485180f, 0.486316f, 0.487450f, 0.488581f, 0.489710f, 0.490837f, 0.491961f,
0.493083f, 0.494203f, 0.495321f, 0.496436f, 0.497549f, 0.498659f, 0.499768f, 0.500874f, 0.501978f, 0.503079f, 0.505750f, 0.501025f,
0.502103f, 0.510857f, 0.523261f, 0.532168f, 0.530325f, 0.512181f, 0.474763f, 0.417813f, 0.345015f, 0.251301f, 0.154861f, 0.062996f,
-0.023023f, -0.105612f, -0.188162f, -0.273380f, -0.362472f, -0.454956f, -0.548889f, -0.641308f, -0.728734f, -0.807656f, -0.874925f, -0.928040f,
-0.965318f, -0.985954f, -0.990000f, -0.978270f, -0.952209f, -0.913729f, -0.865052f, -0.808546f, -0.746589f, -0.681451f, -0.615205f, -0.549663f,
-0.486338f, -0.426427f, -0.370819f, -0.320103f, -0.274609f, -0.234433f, -0.199483f, -0.169516f, -0.144178f, -0.121467f, -0.109876f, -0.095716f,
-0.076629f, -0.056177f, -0.041081f, -0.038209f, -0.052773f, -0.087457f, -0.142280f, -0.214932f, -0.301364f, -0.396467f, -0.494727f, -0.590791f,
-0.679891f, -0.758143f, -0.822701f, -0.871797f, -0.904701f, -0.921598f, -0.923433f, -0.911737f, -0.888440f, -0.855702f, -0.815764f, -0.770815f,
-0.722900f, -0.673841f, -0.625197f, -0.578242f, -0.533957f, -0.493046f, -0.455959f, -0.422924f, -0.393978f, -0.369010f, -0.347791f, -0.330012f,
-0.315311f, -0.303299f, -0.293584f, -0.285785f, -0.279545f, -0.274540f, -0.270483f, -0.267127f, -0.264267f, -0.261735f, -0.259398f, -0.257156f,
-0.254936f, -0.252688f, -0.250382f, -0.248001f, -0.245541f, -0.243006f, -0.240406f, -0.237753f, -0.235062f, -0.232348f, -0.229623f, -0.226902f,
-0.224194f, -0.221508f, -0.218851f, -0.216228f, -0.213643f, -0.211096f, -0.208588f, -0.206119f, -0.203686f, -0.201289f, -0.198925f, -0.196590f,
-0.194283f, -0.192001f, -0.189740f, -0.187500f, -0.185278f, -0.183071f, -0.180879f, -0.178699f, -0.176531f, -0.174373f, -0.172225f, -0.170085f,
-0.167954f, -0.165830f, -0.163713f, -0.161603f, -0.159500f, -0.157403f, -0.155312f, -0.153227f, -0.151148f, -0.149074f, -0.147005f, -0.144942f,
-0.142884f, -0.140830f, -0.138782f, -0.136738f, -0.134698f, -0.132664f, -0.130633f, -0.128606f, -0.126584f, -0.124566f, -0.122551f, -0.120540f,
-0.118533f, -0.116529f, -0.114529f, -0.112533f, -0.110539f, -0.108549f, -0.106563f, -0.104579f, -0.102599f, -0.100622f, -0.098647f, -0.096676f,
-0.094708f, -0.092743f, -0.090780f, -0.088821f, -0.086864f, -0.084910f, -0.082959f, -0.081010f, -0.079065f, -0.077122f, -0.075182f, -0.073244f,
-0.071309f, -0.069377f, -0.067447f, -0.065520f, -0.063596f, -0.061674f, -0.059755f, -0.057838f, -0.055924f, -0.054013f, -0.052104f, -0.050197f,
-0.048293f, -0.046392f, -0.044493f, -0.042596f, -0.040702f, -0.038811f, -0.036922f, -0.035035f, -0.033151f, -0.031270f, -0.029390f, -0.027514f,
-0.025639f, -0.023768f, -0.021898f, -0.020031f, -0.018167f, -0.016305f, -0.014445f, -0.012588f, -0.010733f, -0.008881f, -0.007031f, -0.005184f,
-0.003339f, -0.001496f, 0.000344f, 0.002182f, 0.004017f, 0.005850f, 0.007681f, 0.009509f, 0.011335f, 0.013158f, 0.014979f, 0.016798f,
0.018614f, 0.020427f, 0.022239f, 0.024048f, 0.025854f, 0.027658f, 0.029460f, 0.031259f, 0.033056f, 0.034851f, 0.036643f, 0.038432f,
0.040220f, 0.042005f, 0.043787f, 0.045567f, 0.047345f, 0.049120f, 0.050893f, 0.052664f, 0.054432f, 0.056197f, 0.057961f, 0.059722f,
};


#define evil_square_count 1200

SGFLT evil_square_array[evil_square_count]  = {
0.985879f, 0.756520f, 0.668010f, 0.655388f, 0.516794f, 0.560619f, 0.491958f, 0.494434f, 0.409668f, 0.348045f, 0.471600f, 0.381877f,
0.398155f, 0.432094f, 0.320022f, 0.329253f, 0.366993f, 0.385926f, 0.312149f, 0.305202f, 0.358615f, 0.261188f, 0.304136f, 0.345213f,
0.359916f, 0.330088f, 0.221597f, 0.379563f, 0.278456f, 0.267897f, 0.351408f, 0.272839f, 0.263967f, 0.271009f, 0.268541f, 0.237003f,
0.340868f, 0.225685f, 0.334065f, 0.335322f, 0.274646f, 0.231696f, 0.314834f, 0.252297f, 0.267959f, 0.216236f, 0.258205f, 0.285012f,
0.284030f, 0.265792f, 0.196339f, 0.325509f, 0.266552f, 0.291771f, 0.337388f, 0.269589f, 0.240753f, 0.260969f, 0.214113f, 0.273054f,
0.213781f, 0.285825f, 0.309311f, 0.255044f, 0.148194f, 0.300538f, 0.231970f, 0.246950f, 0.244031f, 0.241030f, 0.229262f, 0.268877f,
0.248360f, 0.234288f, 0.226462f, 0.202518f, 0.317643f, 0.192805f, 0.214175f, 0.219665f, 0.229060f, 0.225761f, 0.232671f, 0.222497f,
0.199470f, 0.253689f, 0.251876f, 0.185612f, 0.287793f, 0.198705f, 0.228947f, 0.178115f, 0.149100f, 0.174602f, 0.168058f, 0.259336f,
0.184690f, 0.222974f, 0.216193f, 0.270132f, 0.198978f, 0.121018f, 0.159926f, 0.169474f, 0.254772f, 0.259073f, 0.193130f, 0.245846f,
0.193240f, 0.149042f, 0.198464f, 0.151322f, 0.203480f, 0.241610f, 0.177213f, 0.185093f, 0.177789f, 0.065383f, 0.243815f, 0.194959f,
0.182329f, 0.057791f, 0.229519f, 0.247699f, 0.101489f, 0.181512f, 0.108321f, 0.180346f, 0.125213f, 0.188731f, 0.123005f, 0.219105f,
0.202305f, 0.120670f, 0.159269f, 0.154514f, 0.154567f, 0.144062f, 0.198056f, 0.110827f, 0.139400f, 0.137257f, 0.176804f, 0.129042f,
0.165733f, 0.103004f, 0.114610f, 0.136823f, 0.088770f, 0.134788f, 0.140027f, 0.079711f, 0.187633f, 0.174571f, 0.163437f, 0.050525f,
0.160702f, 0.140059f, 0.127454f, 0.173884f, 0.038828f, 0.160229f, 0.118606f, 0.094952f, 0.150961f, 0.099861f, 0.138237f, 0.039456f,
0.150218f, 0.138634f, 0.030939f, 0.234907f, 0.001366f, 0.166741f, 0.069379f, 0.085541f, 0.100079f, 0.143949f, 0.002720f, 0.254657f,
0.050164f, 0.052330f, 0.051969f, 0.063661f, 0.098335f, 0.126764f, 0.135583f, 0.056937f, 0.127387f, 0.026177f, 0.055472f, 0.126020f,
0.049717f, 0.144247f, 0.058776f, 0.147310f, 0.102942f, 0.004206f, 0.115394f, 0.048178f, 0.116954f, 0.077047f, 0.048230f, 0.177582f,
0.074938f, -0.019320f, 0.113792f, 0.046047f, 0.071504f, 0.086219f, 0.017637f, 0.100490f, 0.050656f, -0.007099f, 0.094448f, 0.091251f,
0.045734f, -0.011767f, 0.133205f, 0.064340f, 0.063916f, -0.054255f, 0.084398f, 0.086612f, 0.014055f, 0.029719f, 0.105929f, 0.047361f,
0.032981f, 0.060309f, 0.069393f, 0.004900f, 0.130765f, 0.047993f, 0.000914f, 0.092843f, 0.116294f, -0.076234f, 0.098874f, 0.003094f,
0.012661f, 0.076548f, 0.041594f, -0.013882f, 0.020738f, 0.010830f, 0.051494f, 0.063995f, 0.042510f, -0.073121f, 0.108388f, 0.016890f,
-0.013602f, -0.001660f, 0.049695f, 0.002995f, 0.025946f, 0.012459f, -0.006677f, 0.085929f, -0.010994f, 0.055569f, -0.038059f, 0.033374f,
0.034379f, 0.008218f, 0.026977f, -0.041322f, 0.021529f, -0.003561f, 0.091365f, -0.025458f, -0.013128f, -0.090165f, 0.089223f, -0.092949f,
-0.013257f, 0.066359f, -0.025704f, -0.047353f, 0.028354f, 0.037488f, -0.018468f, -0.089256f, 0.049986f, 0.081891f, -0.035563f, -0.012820f,
0.012433f, -0.043172f, -0.077306f, 0.016162f, -0.036244f, 0.078829f, -0.061192f, -0.045198f, 0.065832f, -0.122899f, 0.045844f, -0.057612f,
0.018528f, -0.086891f, 0.052760f, -0.100667f, 0.026751f, -0.071636f, 0.013475f, -0.000538f, -0.053717f, -0.059403f, 0.124108f, -0.081645f,
-0.031322f, -0.044859f, 0.016214f, -0.080000f, -0.116972f, 0.040005f, -0.056143f, 0.004429f, -0.012691f, -0.055906f, -0.082784f, 0.038475f,
-0.047424f, 0.032653f, -0.079435f, -0.053183f, -0.038052f, -0.039964f, -0.108362f, -0.061460f, 0.059543f, -0.026083f, -0.090081f, 0.062390f,
-0.107084f, -0.057548f, 0.000736f, -0.057104f, -0.039078f, -0.116334f, -0.019610f, -0.005477f, -0.122167f, -0.011217f, -0.089149f, -0.071388f,
-0.064134f, 0.000727f, 0.036424f, -0.098234f, 0.051995f, -0.181571f, -0.021552f, -0.090719f, 0.015235f, -0.097942f, -0.100710f, -0.004202f,
-0.040171f, 0.003835f, -0.062674f, -0.076915f, -0.090498f, 0.017448f, -0.122178f, -0.058581f, -0.031627f, -0.121761f, 0.013361f, -0.105970f,
-0.007456f, -0.125479f, 0.028571f, -0.076969f, -0.026572f, -0.103933f, -0.022838f, -0.060822f, -0.134608f, 0.009917f, -0.043223f, -0.083691f,
-0.121868f, -0.004614f, -0.055468f, -0.040191f, -0.139426f, -0.087577f, -0.058603f, -0.055215f, -0.034107f, -0.052391f, -0.091500f, -0.118710f,
-0.122129f, -0.135052f, -0.025737f, -0.116989f, 0.017995f, -0.087960f, -0.123998f, 0.031214f, -0.087710f, -0.121265f, -0.041835f, -0.119313f,
-0.058647f, -0.062577f, -0.080839f, -0.111520f, -0.067601f, -0.105111f, -0.000791f, -0.084096f, -0.118422f, -0.150609f, -0.012356f, -0.154032f,
0.023319f, -0.175068f, 0.017328f, -0.088676f, -0.176297f, -0.083351f, -0.058168f, 0.003501f, -0.104805f, -0.028967f, -0.111922f, -0.070408f,
-0.114762f, -0.102731f, -0.053538f, 0.000044f, -0.147963f, 0.015327f, -0.136462f, -0.003976f, -0.155968f, -0.121097f, -0.038192f, -0.121922f,
-0.114036f, -0.032283f, -0.171737f, -0.070153f, -0.069053f, -0.108660f, -0.045812f, -0.103850f, -0.092298f, -0.044298f, -0.098282f, -0.140592f,
-0.059904f, -0.054158f, -0.089798f, -0.187976f, -0.000971f, -0.057289f, -0.179617f, -0.020044f, -0.108000f, -0.113472f, -0.037676f, -0.049363f,
-0.161226f, -0.025725f, -0.058365f, -0.091390f, -0.097145f, -0.057438f, -0.102249f, -0.066170f, -0.124791f, -0.044987f, -0.136858f, -0.096585f,
-0.075679f, -0.091070f, -0.125922f, -0.087661f, -0.123400f, -0.047077f, -0.068254f, -0.158352f, -0.060097f, -0.097006f, -0.043994f, -0.100585f,
-0.070607f, -0.075283f, -0.141059f, -0.094814f, -0.120565f, 0.009452f, -0.097640f, -0.118144f, -0.041743f, -0.103399f, -0.125418f, -0.135115f,
-0.116479f, -0.095764f, -0.061424f, -0.094800f, -0.072589f, -0.131174f, -0.044263f, -0.076203f, -0.056248f, -0.080247f, -0.112030f, -0.085759f,
-0.110916f, -0.125722f, -0.166437f, -0.069817f, -0.049219f, -0.134144f, -0.164459f, -0.145968f, -0.083383f, -0.043367f, -0.150326f, -0.038970f,
-0.036508f, -0.124156f, -0.158933f, -0.045980f, -0.135883f, -0.035612f, -0.145353f, -0.075034f, -0.051509f, -0.166466f, -0.100413f, -0.086429f,
-0.051698f, -0.092977f, -0.078593f, -0.114459f, -0.141697f, -0.001354f, -0.187955f, -0.109332f, -0.062682f, -0.123575f, -0.117533f, -0.004203f,
-0.120346f, -0.110058f, -0.121421f, -0.064888f, -0.093316f, -0.111805f, -0.070594f, -0.139619f, -0.101657f, -0.030666f, -0.143778f, -0.041879f,
-0.057258f, -0.184917f, -0.066918f, -0.051331f, -0.154193f, -0.042988f, -0.171814f, -0.016789f, -0.159266f, -0.073707f, -0.081254f, -0.074872f,
-0.000064f, -0.123433f, -0.096848f, -0.000836f, -0.166369f, -0.017593f, -0.149098f, -0.148400f, -0.049670f, -0.045665f, -0.114074f, -0.144047f,
-0.109788f, -0.032633f, -0.029424f, -0.120287f, -0.064693f, -0.048509f, -0.154762f, -0.035691f, -0.115789f, -0.123946f, -0.065080f, -0.072679f,
-0.109668f, 0.490164f, -0.990000f, -0.800868f, -0.708354f, -0.591033f, -0.579958f, -0.438015f, -0.540523f, -0.365564f, -0.521990f, -0.472253f,
-0.371746f, -0.370597f, -0.368183f, -0.358896f, -0.361604f, -0.477132f, -0.257799f, -0.368465f, -0.291712f, -0.416146f, -0.353242f, -0.264583f,
-0.285276f, -0.381713f, -0.280079f, -0.331495f, -0.283872f, -0.278603f, -0.198881f, -0.325618f, -0.274463f, -0.347299f, -0.286573f, -0.253012f,
-0.320775f, -0.316131f, -0.278990f, -0.277892f, -0.301328f, -0.231368f, -0.343439f, -0.281435f, -0.241083f, -0.258285f, -0.316956f, -0.297965f,
-0.202720f, -0.228628f, -0.309979f, -0.222551f, -0.291517f, -0.269175f, -0.236602f, -0.261600f, -0.259752f, -0.275916f, -0.277274f, -0.242764f,
-0.301376f, -0.243330f, -0.244672f, -0.243058f, -0.225152f, -0.213445f, -0.264600f, -0.289119f, -0.263497f, -0.183204f, -0.302178f, -0.194576f,
-0.234180f, -0.231514f, -0.265637f, -0.208771f, -0.274052f, -0.223208f, -0.215483f, -0.208565f, -0.219256f, -0.220678f, -0.231066f, -0.175109f,
-0.316904f, -0.078027f, -0.288098f, -0.240120f, -0.185208f, -0.273731f, -0.211981f, -0.251460f, -0.195437f, -0.200457f, -0.157244f, -0.229749f,
-0.256801f, -0.129548f, -0.245881f, -0.245838f, -0.276832f, -0.178817f, -0.159445f, -0.139386f, -0.242158f, -0.251888f, -0.116540f, -0.194352f,
-0.255817f, -0.128821f, -0.203171f, -0.172301f, -0.152447f, -0.237979f, -0.219061f, -0.151823f, -0.202126f, -0.140276f, -0.144942f, -0.147912f,
-0.213602f, -0.191497f, -0.161161f, -0.137678f, -0.136204f, -0.196932f, -0.183286f, -0.180169f, -0.210051f, -0.195812f, -0.200567f, -0.054766f,
-0.228119f, -0.106691f, -0.149327f, -0.213850f, -0.145682f, -0.127183f, -0.125261f, -0.177583f, -0.165848f, -0.139151f, -0.110117f, -0.174747f,
-0.070060f, -0.124714f, -0.254369f, -0.071255f, -0.139028f, -0.154313f, -0.116961f, -0.088593f, -0.212810f, -0.158943f, -0.077326f, -0.107575f,
-0.176265f, -0.147353f, -0.073368f, -0.135329f, -0.123747f, -0.088596f, -0.118740f, -0.089394f, -0.143843f, -0.116552f, -0.136452f, -0.098754f,
-0.239953f, -0.054423f, -0.045765f, -0.091605f, -0.154379f, -0.067494f, -0.140777f, -0.059853f, -0.152665f, -0.111076f, -0.121018f, -0.143294f,
-0.092470f, -0.064829f, -0.097462f, -0.175466f, -0.107065f, -0.020982f, -0.137957f, -0.154929f, -0.027427f, -0.141295f, -0.043876f, -0.145173f,
-0.041103f, -0.132668f, -0.050080f, -0.130331f, -0.040034f, -0.115564f, -0.117498f, -0.082886f, -0.041915f, -0.070656f, -0.139356f, -0.062332f,
-0.008748f, -0.125905f, -0.075146f, -0.099911f, 0.022001f, -0.116035f, 0.020267f, -0.147038f, -0.074225f, -0.060644f, -0.028583f, -0.061036f,
-0.095432f, 0.039041f, -0.047950f, -0.043312f, -0.111967f, -0.029644f, 0.012830f, -0.071210f, -0.085749f, -0.078941f, -0.010007f, -0.069803f,
-0.084389f, -0.014029f, -0.067364f, -0.057832f, -0.162345f, 0.018439f, 0.044104f, -0.085344f, -0.056319f, -0.053057f, 0.020597f, -0.135262f,
0.039404f, -0.010735f, -0.047004f, 0.004703f, -0.017260f, -0.048701f, 0.005659f, -0.046376f, 0.035291f, 0.023145f, -0.090156f, -0.004120f,
-0.071089f, -0.015933f, -0.005616f, -0.103224f, 0.014675f, 0.007190f, -0.011279f, -0.086039f, 0.068539f, -0.054314f, -0.030626f, -0.067799f,
0.050406f, -0.037652f, 0.008258f, 0.003376f, -0.038729f, -0.072743f, 0.087534f, 0.011467f, -0.010320f, -0.022296f, -0.012233f, 0.048815f,
-0.034717f, -0.093143f, 0.095013f, -0.021874f, 0.016914f, -0.002521f, -0.017641f, -0.042274f, 0.029251f, 0.060265f, -0.027640f, -0.009110f,
-0.017988f, 0.022447f, -0.017368f, 0.015196f, -0.016450f, 0.097793f, -0.087088f, 0.066091f, 0.050538f, 0.057225f, -0.032735f, 0.101498f,
-0.021843f, -0.014092f, 0.018120f, 0.051060f, -0.056003f, 0.045243f, -0.041810f, 0.071128f, 0.001528f, 0.007576f, 0.070987f, -0.012367f,
0.006785f, 0.104512f, 0.045649f, 0.017060f, 0.006054f, 0.041849f, 0.007301f, 0.064846f, -0.005020f, 0.086501f, 0.051152f, 0.021976f,
-0.019570f, 0.047942f, 0.024514f, 0.057430f, 0.007415f, 0.064040f, 0.035797f, 0.020342f, 0.120059f, -0.013720f, 0.035026f, -0.048058f,
0.074308f, 0.079666f, 0.017328f, -0.017521f, 0.079441f, 0.067659f, 0.109662f, -0.039426f, 0.018815f, 0.119379f, 0.042576f, 0.026788f,
0.014816f, 0.152322f, 0.035658f, 0.020708f, 0.035227f, 0.042121f, 0.136881f, 0.082299f, -0.013178f, 0.058487f, 0.065291f, 0.018105f,
-0.060472f, 0.118880f, 0.002018f, 0.100258f, 0.004656f, 0.124585f, 0.040841f, 0.105623f, -0.004944f, 0.094124f, 0.043906f, 0.072727f,
0.044141f, 0.056517f, 0.051394f, 0.129774f, 0.082365f, 0.001464f, 0.085353f, 0.046709f, 0.063833f, 0.064999f, 0.090204f, 0.098245f,
-0.012024f, 0.145438f, 0.070993f, 0.062381f, 0.126719f, -0.016306f, 0.062978f, 0.068202f, 0.118517f, 0.018366f, 0.155350f, 0.054829f,
0.002659f, 0.137129f, 0.058058f, 0.122218f, 0.001644f, 0.160561f, 0.064469f, 0.083764f, -0.023627f, 0.115661f, 0.097132f, 0.046790f,
0.128389f, 0.007497f, 0.116258f, 0.034556f, 0.054684f, 0.040323f, 0.127988f, 0.053543f, 0.166469f, 0.068287f, 0.022215f, -0.013015f,
0.067354f, 0.167562f, 0.107971f, 0.142297f, 0.032440f, 0.027678f, 0.117413f, 0.050092f, 0.128884f, 0.098886f, 0.023030f, 0.062576f,
0.060774f, 0.090818f, 0.110549f, 0.060765f, 0.013686f, 0.124136f, 0.085578f, 0.157809f, 0.052168f, 0.062723f, 0.109226f, 0.069546f,
0.060677f, 0.202155f, -0.001914f, 0.018439f, 0.117672f, 0.142272f, 0.120256f, 0.162538f, 0.071689f, 0.077125f, 0.122688f, 0.038969f,
0.059729f, 0.056934f, 0.101661f, 0.089882f, 0.007451f, 0.074253f, 0.100875f, 0.128705f, 0.064683f, 0.053336f, 0.192823f, 0.019748f,
0.146195f, 0.090673f, 0.061179f, 0.121888f, -0.011438f, 0.235770f, -0.018242f, 0.138225f, 0.047218f, 0.104955f, 0.074429f, 0.085706f,
0.076138f, 0.135241f, 0.076741f, 0.067074f, 0.077651f, 0.092757f, 0.138816f, 0.095703f, 0.056615f, 0.090695f, 0.129750f, 0.083789f,
0.120209f, 0.013578f, 0.116471f, 0.180293f, 0.080400f, 0.116205f, -0.010532f, 0.111034f, 0.066899f, 0.159046f, 0.100767f, 0.046432f,
0.103994f, 0.135878f, 0.095519f, 0.061212f, 0.206670f, -0.035010f, 0.090528f, 0.110203f, 0.142849f, 0.044790f, 0.001917f, 0.186154f,
-0.011047f, 0.168825f, 0.088630f, 0.070143f, 0.073562f, 0.142272f, 0.049075f, 0.111697f, 0.124210f, 0.054556f, 0.096751f, 0.054364f,
0.152049f, 0.026700f, 0.178085f, -0.000443f, 0.141094f, 0.100699f, 0.132115f, 0.090840f, 0.127918f, 0.063102f, 0.066781f, 0.064563f,
0.091742f, 0.115005f, 0.127403f, 0.088013f, 0.002009f, 0.116729f, 0.135737f, 0.084134f, 0.095445f, 0.131376f, 0.035688f, 0.102890f,
0.123324f, 0.053330f, 0.134404f, 0.075102f, 0.125453f, 0.125390f, 0.031957f, 0.088631f, 0.099556f, -0.014760f, 0.128423f, 0.063208f,
0.129877f, 0.121017f, 0.114138f, 0.018705f, 0.124606f, 0.151330f, 0.039030f, 0.136410f, 0.083595f, 0.014056f, 0.143979f, 0.023738f,
0.160671f, 0.053443f, 0.153701f, 0.016486f, 0.066178f, 0.185779f, 0.008251f, 0.112056f, 0.107266f, 0.079203f, 0.150788f, 0.010733f,
0.149988f, 0.059560f, 0.156958f, 0.123993f, 0.070215f, 0.116112f, -0.001306f, 0.142237f, 0.034875f, 0.090294f, 0.107927f, 0.099928f,
};


#define punchy_square_count 1200

SGFLT punchy_square_array[punchy_square_count]  = {
-0.086257f, -0.085367f, -0.091424f, -0.101596f, -0.109774f, -0.108993f, -0.093244f, -0.058558f, -0.003436f, 0.071217f, 0.162488f, 0.266010f,
0.376588f, 0.488774f, 0.597359f, 0.697756f, 0.786245f, 0.860113f, 0.917685f, 0.958273f, 0.982069f, 0.990000f, 0.983558f, 0.964634f,
0.935353f, 0.897932f, 0.854558f, 0.807292f, 0.757998f, 0.708295f, 0.659532f, 0.612783f, 0.568854f, 0.528302f, 0.491461f, 0.458476f,
0.429334f, 0.403899f, 0.381941f, 0.363171f, 0.347258f, 0.333856f, 0.322621f, 0.313220f, 0.305345f, 0.298716f, 0.293087f, 0.288247f,
0.284017f, 0.280252f, 0.276836f, 0.273677f, 0.270709f, 0.267882f, 0.265163f, 0.262530f, 0.259972f, 0.257482f, 0.255062f, 0.252712f,
0.250437f, 0.248241f, 0.246128f, 0.244101f, 0.242163f, 0.240315f, 0.238558f, 0.236889f, 0.235306f, 0.233807f, 0.232388f, 0.231045f,
0.229774f, 0.228569f, 0.227426f, 0.226341f, 0.225309f, 0.224326f, 0.223387f, 0.222490f, 0.221631f, 0.220807f, 0.220015f, 0.219253f,
0.218518f, 0.217809f, 0.217123f, 0.216460f, 0.215817f, 0.215194f, 0.214590f, 0.214003f, 0.213432f, 0.212877f, 0.212336f, 0.211810f,
0.211297f, 0.210796f, 0.210308f, 0.209831f, 0.209365f, 0.208910f, 0.208464f, 0.208028f, 0.207601f, 0.207183f, 0.206772f, 0.206370f,
0.205975f, 0.205587f, 0.205205f, 0.204831f, 0.204462f, 0.204099f, 0.203741f, 0.203389f, 0.203043f, 0.202700f, 0.202363f, 0.202030f,
0.201701f, 0.201376f, 0.201055f, 0.200738f, 0.200424f, 0.200114f, 0.199806f, 0.199502f, 0.199201f, 0.198903f, 0.198607f, 0.198314f,
0.198023f, 0.197735f, 0.197449f, 0.197165f, 0.196883f, 0.196603f, 0.196325f, 0.196049f, 0.195775f, 0.195502f, 0.195231f, 0.194962f,
0.194694f, 0.194427f, 0.194161f, 0.193897f, 0.193635f, 0.193373f, 0.193112f, 0.192853f, 0.192594f, 0.192337f, 0.192080f, 0.191825f,
0.191570f, 0.191316f, 0.191063f, 0.190811f, 0.190559f, 0.190308f, 0.190058f, 0.189809f, 0.189560f, 0.189311f, 0.189063f, 0.188816f,
0.188569f, 0.188323f, 0.188077f, 0.187832f, 0.187587f, 0.187343f, 0.187099f, 0.186855f, 0.186612f, 0.186369f, 0.186126f, 0.185884f,
0.185642f, 0.185400f, 0.185159f, 0.184918f, 0.184677f, 0.184436f, 0.184196f, 0.183956f, 0.183716f, 0.183476f, 0.183237f, 0.182998f,
0.182759f, 0.182520f, 0.182281f, 0.182042f, 0.181804f, 0.181566f, 0.181328f, 0.181090f, 0.180852f, 0.180614f, 0.180376f, 0.180139f,
0.179902f, 0.179664f, 0.179427f, 0.179190f, 0.178953f, 0.178716f, 0.178480f, 0.178243f, 0.178007f, 0.177770f, 0.177534f, 0.177297f,
0.177061f, 0.176825f, 0.176589f, 0.176353f, 0.176117f, 0.175881f, 0.175645f, 0.175409f, 0.175173f, 0.174938f, 0.174702f, 0.174466f,
0.174231f, 0.173995f, 0.173760f, 0.173525f, 0.173289f, 0.173054f, 0.172819f, 0.172584f, 0.172348f, 0.172113f, 0.171878f, 0.171643f,
0.171408f, 0.171173f, 0.170938f, 0.170703f, 0.170468f, 0.170234f, 0.169999f, 0.169764f, 0.169529f, 0.169295f, 0.169060f, 0.168825f,
0.168591f, 0.168356f, 0.168122f, 0.167887f, 0.167653f, 0.167418f, 0.167184f, 0.166950f, 0.166715f, 0.166481f, 0.166247f, 0.166013f,
0.165778f, 0.165544f, 0.165310f, 0.165076f, 0.164842f, 0.164608f, 0.164374f, 0.164140f, 0.163906f, 0.163672f, 0.163438f, 0.163204f,
0.162970f, 0.162737f, 0.162503f, 0.162269f, 0.162036f, 0.161802f, 0.161568f, 0.161335f, 0.161101f, 0.160868f, 0.160634f, 0.160401f,
0.160167f, 0.159934f, 0.159701f, 0.159467f, 0.159234f, 0.159001f, 0.158767f, 0.158534f, 0.158301f, 0.158068f, 0.157835f, 0.157602f,
0.157369f, 0.157136f, 0.156903f, 0.156670f, 0.156437f, 0.156205f, 0.155972f, 0.155739f, 0.155506f, 0.155274f, 0.155041f, 0.154809f,
0.154576f, 0.154344f, 0.154111f, 0.153879f, 0.153647f, 0.153414f, 0.153182f, 0.152950f, 0.152718f, 0.152485f, 0.152253f, 0.152021f,
0.151789f, 0.151557f, 0.151325f, 0.151093f, 0.150862f, 0.150630f, 0.150398f, 0.150166f, 0.149935f, 0.149703f, 0.149472f, 0.149240f,
0.149009f, 0.148777f, 0.148546f, 0.148315f, 0.148083f, 0.147852f, 0.147621f, 0.147390f, 0.147159f, 0.146928f, 0.146697f, 0.146466f,
0.146235f, 0.146004f, 0.145773f, 0.145543f, 0.145312f, 0.145082f, 0.144851f, 0.144621f, 0.144390f, 0.144160f, 0.143929f, 0.143699f,
0.143469f, 0.143239f, 0.143009f, 0.142779f, 0.142549f, 0.142319f, 0.142089f, 0.141859f, 0.141629f, 0.141400f, 0.141170f, 0.140940f,
0.140711f, 0.140481f, 0.140252f, 0.140023f, 0.139793f, 0.139564f, 0.139335f, 0.139106f, 0.138877f, 0.138648f, 0.138419f, 0.138190f,
0.137961f, 0.137733f, 0.137504f, 0.137275f, 0.137047f, 0.136818f, 0.136590f, 0.136362f, 0.136133f, 0.135905f, 0.135677f, 0.135449f,
0.135221f, 0.134993f, 0.134765f, 0.134537f, 0.134309f, 0.134082f, 0.133854f, 0.133627f, 0.133399f, 0.133172f, 0.132944f, 0.132717f,
0.132490f, 0.132263f, 0.132036f, 0.131809f, 0.131582f, 0.131355f, 0.131128f, 0.130902f, 0.130675f, 0.130449f, 0.130222f, 0.129996f,
0.129769f, 0.129543f, 0.129317f, 0.129091f, 0.128865f, 0.128639f, 0.128413f, 0.128187f, 0.127961f, 0.127736f, 0.127510f, 0.127285f,
0.127059f, 0.126834f, 0.126609f, 0.126383f, 0.126158f, 0.125933f, 0.125708f, 0.125483f, 0.125259f, 0.125034f, 0.124809f, 0.124585f,
0.124360f, 0.124136f, 0.123912f, 0.123687f, 0.123463f, 0.123239f, 0.123015f, 0.122791f, 0.122567f, 0.122344f, 0.122120f, 0.121896f,
0.121673f, 0.121450f, 0.121226f, 0.121003f, 0.120780f, 0.120557f, 0.120334f, 0.120111f, 0.119888f, 0.119665f, 0.119443f, 0.119220f,
0.118998f, 0.118775f, 0.118553f, 0.118331f, 0.118109f, 0.117887f, 0.117665f, 0.117443f, 0.117221f, 0.117000f, 0.116778f, 0.116556f,
0.116335f, 0.116114f, 0.115893f, 0.115671f, 0.115450f, 0.115229f, 0.115009f, 0.114788f, 0.114567f, 0.114347f, 0.114126f, 0.113906f,
0.113685f, 0.113465f, 0.113245f, 0.113025f, 0.112805f, 0.112585f, 0.112366f, 0.112146f, 0.111926f, 0.111707f, 0.111488f, 0.111268f,
0.111049f, 0.110830f, 0.110611f, 0.110392f, 0.110173f, 0.109955f, 0.109736f, 0.109518f, 0.109299f, 0.109081f, 0.108863f, 0.108645f,
0.108427f, 0.108209f, 0.107991f, 0.107773f, 0.107556f, 0.107338f, 0.107121f, 0.106904f, 0.106686f, 0.106469f, 0.106252f, 0.106035f,
0.105819f, 0.105602f, 0.105385f, 0.105169f, 0.104952f, 0.104736f, 0.104520f, 0.104304f, 0.104088f, 0.103872f, 0.103656f, 0.103441f,
0.103225f, 0.103010f, 0.102794f, 0.102579f, 0.102364f, 0.102149f, 0.101934f, 0.101719f, 0.101505f, 0.101290f, 0.101075f, 0.100861f,
0.100647f, 0.100433f, 0.100219f, 0.100005f, 0.099791f, 0.099577f, 0.099363f, 0.099150f, 0.098937f, 0.098723f, 0.098510f, 0.098297f,
0.098084f, 0.097871f, 0.097658f, 0.097446f, 0.097233f, 0.097021f, 0.096809f, 0.096596f, 0.096384f, 0.096172f, 0.095960f, 0.095749f,
0.095537f, 0.095326f, 0.095114f, 0.094903f, 0.094692f, 0.094481f, 0.094270f, 0.094059f, 0.093848f, 0.093638f, 0.093427f, 0.093217f,
0.093006f, 0.092796f, 0.092586f, 0.092376f, 0.092167f, 0.091957f, 0.091747f, 0.091538f, 0.091329f, 0.091119f, 0.090910f, 0.090701f,
0.090492f, 0.091621f, 0.086664f, 0.085774f, 0.091831f, 0.102003f, 0.110181f, 0.109399f, 0.093650f, 0.058964f, 0.003842f, -0.070812f,
-0.162082f, -0.265605f, -0.376183f, -0.488369f, -0.596955f, -0.697351f, -0.785841f, -0.859710f, -0.917281f, -0.957869f, -0.981666f, -0.989597f,
-0.983156f, -0.964232f, -0.934951f, -0.897530f, -0.854157f, -0.806892f, -0.757598f, -0.707895f, -0.659132f, -0.612383f, -0.568455f, -0.527903f,
-0.491062f, -0.458078f, -0.428936f, -0.403501f, -0.381544f, -0.362774f, -0.346862f, -0.333461f, -0.322226f, -0.312826f, -0.304951f, -0.298322f,
-0.292694f, -0.287854f, -0.283625f, -0.279860f, -0.276444f, -0.273286f, -0.270318f, -0.267492f, -0.264773f, -0.262140f, -0.259582f, -0.257094f,
-0.254674f, -0.252324f, -0.250049f, -0.247854f, -0.245741f, -0.243715f, -0.241778f, -0.239930f, -0.238173f, -0.236504f, -0.234922f, -0.233424f,
-0.232006f, -0.230663f, -0.229392f, -0.228187f, -0.227045f, -0.225960f, -0.224929f, -0.223946f, -0.223008f, -0.222111f, -0.221253f, -0.220429f,
-0.219637f, -0.218876f, -0.218141f, -0.217433f, -0.216747f, -0.216085f, -0.215443f, -0.214820f, -0.214216f, -0.213629f, -0.213059f, -0.212504f,
-0.211964f, -0.211438f, -0.210926f, -0.210426f, -0.209938f, -0.209462f, -0.208996f, -0.208541f, -0.208096f, -0.207661f, -0.207234f, -0.206816f,
-0.206406f, -0.206004f, -0.205609f, -0.205222f, -0.204841f, -0.204467f, -0.204098f, -0.203736f, -0.203379f, -0.203027f, -0.202681f, -0.202339f,
-0.202002f, -0.201669f, -0.201341f, -0.201017f, -0.200696f, -0.200379f, -0.200066f, -0.199756f, -0.199449f, -0.199146f, -0.198845f, -0.198547f,
-0.198252f, -0.197959f, -0.197669f, -0.197381f, -0.197096f, -0.196812f, -0.196531f, -0.196251f, -0.195974f, -0.195698f, -0.195425f, -0.195152f,
-0.194882f, -0.194613f, -0.194345f, -0.194079f, -0.193814f, -0.193550f, -0.193288f, -0.193027f, -0.192767f, -0.192508f, -0.192250f, -0.191993f,
-0.191737f, -0.191481f, -0.191227f, -0.190974f, -0.190721f, -0.190469f, -0.190218f, -0.189968f, -0.189718f, -0.189469f, -0.189220f, -0.188973f,
-0.188725f, -0.188478f, -0.188232f, -0.187986f, -0.187741f, -0.187496f, -0.187252f, -0.187008f, -0.186764f, -0.186521f, -0.186278f, -0.186036f,
-0.185794f, -0.185552f, -0.185310f, -0.185069f, -0.184828f, -0.184588f, -0.184347f, -0.184107f, -0.183867f, -0.183628f, -0.183388f, -0.183149f,
-0.182910f, -0.182671f, -0.182432f, -0.182194f, -0.181956f, -0.181718f, -0.181480f, -0.181242f, -0.181004f, -0.180767f, -0.180529f, -0.180292f,
-0.180055f, -0.179818f, -0.179581f, -0.179344f, -0.179108f, -0.178871f, -0.178635f, -0.178398f, -0.178162f, -0.177926f, -0.177690f, -0.177454f,
-0.177218f, -0.176982f, -0.176746f, -0.176510f, -0.176275f, -0.176039f, -0.175804f, -0.175568f, -0.175333f, -0.175097f, -0.174862f, -0.174627f,
-0.174392f, -0.174157f, -0.173922f, -0.173687f, -0.173452f, -0.173217f, -0.172982f, -0.172747f, -0.172512f, -0.172278f, -0.172043f, -0.171808f,
-0.171574f, -0.171339f, -0.171104f, -0.170870f, -0.170635f, -0.170401f, -0.170167f, -0.169932f, -0.169698f, -0.169464f, -0.169229f, -0.168995f,
-0.168761f, -0.168527f, -0.168293f, -0.168059f, -0.167825f, -0.167591f, -0.167357f, -0.167123f, -0.166889f, -0.166655f, -0.166421f, -0.166187f,
-0.165953f, -0.165720f, -0.165486f, -0.165252f, -0.165018f, -0.164785f, -0.164551f, -0.164318f, -0.164084f, -0.163851f, -0.163617f, -0.163384f,
-0.163150f, -0.162917f, -0.162683f, -0.162450f, -0.162217f, -0.161984f, -0.161750f, -0.161517f, -0.161284f, -0.161051f, -0.160818f, -0.160585f,
-0.160352f, -0.160119f, -0.159886f, -0.159653f, -0.159420f, -0.159187f, -0.158954f, -0.158722f, -0.158489f, -0.158256f, -0.158023f, -0.157791f,
-0.157558f, -0.157326f, -0.157093f, -0.156861f, -0.156628f, -0.156396f, -0.156163f, -0.155931f, -0.155699f, -0.155466f, -0.155234f, -0.155002f,
-0.154770f, -0.154538f, -0.154306f, -0.154074f, -0.153842f, -0.153610f, -0.153378f, -0.153146f, -0.152914f, -0.152682f, -0.152451f, -0.152219f,
-0.151987f, -0.151756f, -0.151524f, -0.151293f, -0.151061f, -0.150830f, -0.150598f, -0.150367f, -0.150136f, -0.149905f, -0.149673f, -0.149442f,
-0.149211f, -0.148980f, -0.148749f, -0.148518f, -0.148287f, -0.148056f, -0.147826f, -0.147595f, -0.147364f, -0.147133f, -0.146903f, -0.146672f,
-0.146442f, -0.146211f, -0.145981f, -0.145750f, -0.145520f, -0.145290f, -0.145060f, -0.144830f, -0.144600f, -0.144369f, -0.144140f, -0.143910f,
-0.143680f, -0.143450f, -0.143220f, -0.142990f, -0.142761f, -0.142531f, -0.142302f, -0.142072f, -0.141843f, -0.141613f, -0.141384f, -0.141155f,
-0.140926f, -0.140696f, -0.140467f, -0.140238f, -0.140009f, -0.139781f, -0.139552f, -0.139323f, -0.139094f, -0.138866f, -0.138637f, -0.138408f,
-0.138180f, -0.137952f, -0.137723f, -0.137495f, -0.137267f, -0.137039f, -0.136811f, -0.136582f, -0.136355f, -0.136127f, -0.135899f, -0.135671f,
-0.135443f, -0.135216f, -0.134988f, -0.134761f, -0.134533f, -0.134306f, -0.134079f, -0.133851f, -0.133624f, -0.133397f, -0.133170f, -0.132943f,
-0.132716f, -0.132489f, -0.132263f, -0.132036f, -0.131809f, -0.131583f, -0.131356f, -0.131130f, -0.130904f, -0.130677f, -0.130451f, -0.130225f,
-0.129999f, -0.129773f, -0.129547f, -0.129321f, -0.129096f, -0.128870f, -0.128644f, -0.128419f, -0.128193f, -0.127968f, -0.127743f, -0.127518f,
-0.127292f, -0.127067f, -0.126842f, -0.126617f, -0.126393f, -0.126168f, -0.125943f, -0.125719f, -0.125494f, -0.125270f, -0.125045f, -0.124821f,
-0.124597f, -0.124373f, -0.124149f, -0.123925f, -0.123701f, -0.123477f, -0.123253f, -0.123030f, -0.122806f, -0.122583f, -0.122359f, -0.122136f,
-0.121913f, -0.121690f, -0.121467f, -0.121244f, -0.121021f, -0.120798f, -0.120575f, -0.120353f, -0.120130f, -0.119908f, -0.119685f, -0.119463f,
-0.119241f, -0.119018f, -0.118796f, -0.118575f, -0.118353f, -0.118131f, -0.117909f, -0.117688f, -0.117466f, -0.117245f, -0.117023f, -0.116802f,
-0.116581f, -0.116360f, -0.116139f, -0.115918f, -0.115697f, -0.115477f, -0.115256f, -0.115035f, -0.114815f, -0.114595f, -0.114374f, -0.114154f,
-0.113934f, -0.113714f, -0.113494f, -0.113275f, -0.113055f, -0.112835f, -0.112616f, -0.112396f, -0.112177f, -0.111958f, -0.111739f, -0.111520f,
-0.111301f, -0.111082f, -0.110863f, -0.110644f, -0.110426f, -0.110207f, -0.109989f, -0.109771f, -0.109553f, -0.109335f, -0.109117f, -0.108899f,
-0.108681f, -0.108463f, -0.108246f, -0.108028f, -0.107811f, -0.107594f, -0.107376f, -0.107159f, -0.106942f, -0.106726f, -0.106509f, -0.106292f,
-0.106075f, -0.105859f, -0.105643f, -0.105426f, -0.105210f, -0.104994f, -0.104778f, -0.104562f, -0.104347f, -0.104131f, -0.103915f, -0.103700f,
-0.103485f, -0.103269f, -0.103054f, -0.102839f, -0.102624f, -0.102409f, -0.102195f, -0.101980f, -0.101766f, -0.101551f, -0.101337f, -0.101123f,
-0.100909f, -0.100695f, -0.100481f, -0.100267f, -0.100053f, -0.099840f, -0.099626f, -0.099413f, -0.099200f, -0.098987f, -0.098774f, -0.098561f,
-0.098348f, -0.098135f, -0.097923f, -0.097710f, -0.097498f, -0.097286f, -0.097074f, -0.096862f, -0.096650f, -0.096438f, -0.096226f, -0.096015f,
-0.095803f, -0.095592f, -0.095381f, -0.095170f, -0.094959f, -0.094748f, -0.094537f, -0.094326f, -0.094116f, -0.093905f, -0.093695f, -0.093485f,
-0.093275f, -0.093065f, -0.092855f, -0.092645f, -0.092436f, -0.092226f, -0.092017f, -0.091807f, -0.091598f, -0.091389f, -0.091180f, -0.090971f,
};


#define soft_square_count 1200

SGFLT soft_square_array[soft_square_count]  = {
0.205294f, 0.205659f, 0.201813f, 0.195760f, 0.190124f, 0.189222f, 0.196483f, 0.213882f, 0.242666f, 0.282718f, 0.332855f, 0.391153f,
0.455140f, 0.522718f, 0.591202f, 0.658136f, 0.721499f, 0.779317f, 0.830468f, 0.874572f, 0.911031f, 0.939910f, 0.961657f, 0.976738f,
0.985734f, 0.989888f, 0.990000f, 0.986401f, 0.979893f, 0.971369f, 0.961218f, 0.949711f, 0.937626f, 0.925306f, 0.913032f, 0.901231f,
0.889859f, 0.878961f, 0.868820f, 0.859643f, 0.851140f, 0.843649f, 0.836860f, 0.830697f, 0.825160f, 0.820006f, 0.815072f, 0.809894f,
0.804709f, 0.799654f, 0.794528f, 0.789578f, 0.784457f, 0.779265f, 0.773557f, 0.767245f, 0.760426f, 0.753722f, 0.746993f, 0.740306f,
0.733968f, 0.727626f, 0.721481f, 0.715822f, 0.711048f, 0.706571f, 0.701624f, 0.696054f, 0.690606f, 0.684741f, 0.678528f, 0.671799f,
0.664614f, 0.657487f, 0.649995f, 0.642530f, 0.635927f, 0.629837f, 0.624288f, 0.618959f, 0.613741f, 0.608636f, 0.603296f, 0.597832f,
0.592165f, 0.586295f, 0.580636f, 0.575340f, 0.570376f, 0.565802f, 0.561309f, 0.556740f, 0.551964f, 0.546386f, 0.540704f, 0.535142f,
0.529529f, 0.524007f, 0.519020f, 0.514871f, 0.511229f, 0.508197f, 0.505362f, 0.502408f, 0.499229f, 0.495562f, 0.491428f, 0.486677f,
0.481071f, 0.475536f, 0.470240f, 0.465002f, 0.459870f, 0.454733f, 0.449253f, 0.444021f, 0.439204f, 0.434380f, 0.429516f, 0.424674f,
0.419758f, 0.414763f, 0.409510f, 0.404458f, 0.399248f, 0.394184f, 0.389286f, 0.384186f, 0.379716f, 0.375821f, 0.372438f, 0.369487f,
0.366790f, 0.364110f, 0.361516f, 0.358953f, 0.356301f, 0.353896f, 0.351472f, 0.348755f, 0.345867f, 0.342521f, 0.338433f, 0.334019f,
0.329297f, 0.324034f, 0.318837f, 0.313571f, 0.308430f, 0.303855f, 0.299259f, 0.294795f, 0.290762f, 0.286865f, 0.283439f, 0.280041f,
0.276952f, 0.274525f, 0.272224f, 0.269934f, 0.267898f, 0.265679f, 0.263352f, 0.260553f, 0.257461f, 0.254194f, 0.250504f, 0.246531f,
0.242629f, 0.238641f, 0.234696f, 0.230852f, 0.227021f, 0.223233f, 0.219179f, 0.214739f, 0.210054f, 0.205247f, 0.200677f, 0.196320f,
0.191722f, 0.187186f, 0.182770f, 0.178476f, 0.174929f, 0.171961f, 0.169736f, 0.167729f, 0.165987f, 0.164450f, 0.162870f, 0.161269f,
0.159659f, 0.158146f, 0.156520f, 0.154912f, 0.153660f, 0.151934f, 0.149939f, 0.148248f, 0.146354f, 0.144120f, 0.141489f, 0.138351f,
0.134943f, 0.131120f, 0.127192f, 0.122933f, 0.118545f, 0.113880f, 0.108978f, 0.104226f, 0.099811f, 0.095769f, 0.092019f, 0.088213f,
0.084589f, 0.081528f, 0.079190f, 0.077411f, 0.075784f, 0.074513f, 0.073400f, 0.072418f, 0.071564f, 0.070676f, 0.070114f, 0.069638f,
0.068986f, 0.068623f, 0.067915f, 0.066095f, 0.063391f, 0.059870f, 0.055994f, 0.052082f, 0.047528f, 0.042971f, 0.038599f, 0.034465f,
0.030503f, 0.026377f, 0.022350f, 0.018224f, 0.014176f, 0.010335f, 0.006702f, 0.003519f, 0.000811f, -0.001245f, -0.002930f, -0.004650f,
-0.006225f, -0.007922f, -0.009660f, -0.011654f, -0.013630f, -0.015358f, -0.016869f, -0.018554f, -0.020964f, -0.023777f, -0.027027f, -0.030916f,
-0.034852f, -0.038700f, -0.042395f, -0.045637f, -0.048170f, -0.050355f, -0.052629f, -0.054666f, -0.056333f, -0.057719f, -0.058785f, -0.059003f,
-0.058762f, -0.058408f, -0.058028f, -0.058141f, -0.058175f, -0.058344f, -0.058886f, -0.059873f, -0.060885f, -0.062157f, -0.063318f, -0.064397f,
-0.065825f, -0.068053f, -0.070586f, -0.072975f, -0.075077f, -0.077294f, -0.080031f, -0.083080f, -0.086277f, -0.089510f, -0.092610f, -0.095386f,
-0.097637f, -0.099904f, -0.102530f, -0.104595f, -0.107098f, -0.110093f, -0.112947f, -0.115922f, -0.118791f, -0.121499f, -0.123692f, -0.125920f,
-0.128166f, -0.130309f, -0.132609f, -0.134635f, -0.136531f, -0.137730f, -0.138571f, -0.139273f, -0.139610f, -0.139412f, -0.139017f, -0.138791f,
-0.138826f, -0.139037f, -0.139637f, -0.140353f, -0.141129f, -0.142024f, -0.143256f, -0.144137f, -0.144975f, -0.145940f, -0.147130f, -0.148449f,
-0.149687f, -0.150742f, -0.151713f, -0.152882f, -0.153956f, -0.154712f, -0.155673f, -0.157021f, -0.158612f, -0.160568f, -0.162864f, -0.165658f,
-0.169116f, -0.172826f, -0.176720f, -0.180732f, -0.184399f, -0.187363f, -0.189823f, -0.191769f, -0.192990f, -0.193602f, -0.193653f, -0.192937f,
-0.191613f, -0.190213f, -0.188294f, -0.186223f, -0.184149f, -0.181904f, -0.179282f, -0.176449f, -0.174311f, -0.172789f, -0.171637f, -0.171261f,
-0.171174f, -0.171426f, -0.172119f, -0.173572f, -0.175465f, -0.177651f, -0.179732f, -0.181728f, -0.183929f, -0.185878f, -0.187839f, -0.189534f,
-0.191060f, -0.192824f, -0.195006f, -0.197407f, -0.200212f, -0.202843f, -0.205266f, -0.207499f, -0.209075f, -0.210354f, -0.211787f, -0.213249f,
-0.214493f, -0.215424f, -0.216485f, -0.217855f, -0.219723f, -0.221822f, -0.223612f, -0.225117f, -0.226033f, -0.226892f, -0.227433f, -0.227675f,
-0.227128f, -0.226219f, -0.225250f, -0.224157f, -0.223035f, -0.222243f, -0.221653f, -0.221117f, -0.220754f, -0.221257f, -0.222082f, -0.222584f,
-0.222858f, -0.223100f, -0.223603f, -0.224349f, -0.225012f, -0.225590f, -0.226463f, -0.227167f, -0.228042f, -0.229233f, -0.230546f, -0.232172f,
-0.233837f, -0.235702f, -0.237267f, -0.237781f, -0.237778f, -0.237442f, -0.237425f, -0.237554f, -0.237172f, -0.236451f, -0.235957f, -0.235504f,
-0.234833f, -0.234128f, -0.233861f, -0.234100f, -0.234452f, -0.234819f, -0.235736f, -0.236790f, -0.237657f, -0.238450f, -0.238913f, -0.239532f,
-0.239584f, -0.239176f, -0.238859f, -0.238075f, -0.237051f, -0.236496f, -0.235858f, -0.235501f, -0.235461f, -0.235778f, -0.236022f, -0.236250f,
-0.236137f, -0.236011f, -0.236130f, -0.236003f, -0.235877f, -0.236069f, -0.236754f, -0.237620f, -0.238688f, -0.240189f, -0.241872f, -0.243452f,
-0.244692f, -0.245684f, -0.246794f, -0.247791f, -0.248830f, -0.249518f, -0.249778f, -0.249789f, -0.249439f, -0.248776f, -0.248222f, -0.247733f,
-0.247240f, -0.246740f, -0.246271f, -0.245463f, -0.244375f, -0.243329f, -0.242258f, -0.241315f, -0.240447f, -0.239867f, -0.239031f, -0.238022f,
-0.236931f, -0.235983f, -0.235498f, -0.234994f, -0.234427f, -0.233582f, -0.232603f, -0.231761f, -0.231151f, -0.230228f, -0.229093f, -0.228177f,
-0.227197f, -0.226219f, -0.225008f, -0.223582f, -0.222105f, -0.220711f, -0.220249f, -0.220335f, -0.220525f, -0.221224f, -0.221869f, -0.222457f,
-0.223209f, -0.223805f, -0.224859f, -0.226231f, -0.227742f, -0.229369f, -0.230706f, -0.231584f, -0.232028f, -0.231827f, -0.231080f, -0.230326f,
-0.229488f, -0.228412f, -0.227499f, -0.226712f, -0.225950f, -0.225535f, -0.225695f, -0.226294f, -0.227345f, -0.228629f, -0.229628f, -0.230482f,
-0.230908f, -0.230626f, -0.229599f, -0.227880f, -0.225843f, -0.223495f, -0.221196f, -0.218916f, -0.216959f, -0.215589f, -0.214430f, -0.213671f,
-0.213654f, -0.214071f, -0.214869f, -0.215678f, -0.216605f, -0.217354f, -0.218369f, -0.219199f, -0.219870f, -0.220183f, -0.219909f, -0.219244f,
-0.218036f, -0.217028f, -0.216646f, -0.216260f, -0.215961f, -0.215894f, -0.215811f, -0.215354f, -0.214618f, -0.213802f, -0.212870f, -0.210860f,
-0.208734f, -0.206607f, -0.204145f, -0.201602f, -0.199693f, -0.198543f, -0.197915f, -0.197970f, -0.198190f, -0.198094f, -0.198193f, -0.198328f,
-0.198520f, -0.199144f, -0.199162f, -0.201737f, -0.202860f, -0.199208f, -0.192652f, -0.186806f, -0.185637f, -0.192233f, -0.208904f, -0.236915f,
-0.276393f, -0.325532f, -0.383195f, -0.446857f, -0.513846f, -0.582125f, -0.648762f, -0.712192f, -0.770449f, -0.822255f, -0.867117f, -0.903933f,
-0.933352f, -0.955959f, -0.972161f, -0.982739f, -0.987834f, -0.988584f, -0.985483f, -0.979399f, -0.971360f, -0.961501f, -0.950244f, -0.938497f,
-0.926522f, -0.914682f, -0.903176f, -0.892120f, -0.881352f, -0.871084f, -0.861750f, -0.852843f, -0.844046f, -0.835784f, -0.828104f, -0.820762f,
-0.814143f, -0.807617f, -0.801208f, -0.794943f, -0.788696f, -0.782267f, -0.775736f, -0.769401f, -0.762882f, -0.756611f, -0.750605f, -0.744654f,
-0.738574f, -0.732331f, -0.726503f, -0.721154f, -0.716120f, -0.711070f, -0.706044f, -0.701331f, -0.697182f, -0.693089f, -0.688441f, -0.683519f,
-0.678584f, -0.674025f, -0.669286f, -0.664418f, -0.659384f, -0.654008f, -0.648593f, -0.643116f, -0.637308f, -0.631350f, -0.624973f, -0.618098f,
-0.611608f, -0.605406f, -0.599260f, -0.593198f, -0.587116f, -0.581172f, -0.575627f, -0.570247f, -0.564822f, -0.559551f, -0.554094f, -0.548761f,
-0.543521f, -0.538425f, -0.533376f, -0.528383f, -0.523800f, -0.519616f, -0.515627f, -0.511887f, -0.508059f, -0.503958f, -0.499639f, -0.495482f,
-0.491627f, -0.488261f, -0.484999f, -0.481503f, -0.477906f, -0.473958f, -0.469726f, -0.465716f, -0.462228f, -0.458892f, -0.455522f, -0.451952f,
-0.447919f, -0.443770f, -0.439311f, -0.434684f, -0.429574f, -0.424119f, -0.418715f, -0.413089f, -0.407138f, -0.401632f, -0.396183f, -0.390665f,
-0.385498f, -0.380463f, -0.375878f, -0.371559f, -0.367139f, -0.363188f, -0.359409f, -0.356140f, -0.353212f, -0.350309f, -0.347551f, -0.344509f,
-0.341039f, -0.337524f, -0.333344f, -0.328272f, -0.322834f, -0.317483f, -0.311860f, -0.306347f, -0.301241f, -0.296171f, -0.291157f, -0.286401f,
-0.282517f, -0.279058f, -0.275971f, -0.273434f, -0.271431f, -0.269563f, -0.267853f, -0.266064f, -0.263995f, -0.261254f, -0.258114f, -0.254225f,
-0.249798f, -0.244795f, -0.239355f, -0.233881f, -0.228219f, -0.222586f, -0.217313f, -0.212558f, -0.208186f, -0.204100f, -0.200041f, -0.196099f,
-0.192107f, -0.188498f, -0.185535f, -0.182823f, -0.180776f, -0.179351f, -0.178311f, -0.177377f, -0.176448f, -0.175165f, -0.172996f, -0.170387f,
-0.167249f, -0.163668f, -0.160410f, -0.157397f, -0.154596f, -0.151907f, -0.149243f, -0.147166f, -0.145192f, -0.142879f, -0.140731f, -0.138226f,
-0.135201f, -0.131530f, -0.127613f, -0.123363f, -0.119300f, -0.115876f, -0.112984f, -0.110283f, -0.108049f, -0.106001f, -0.104056f, -0.102037f,
-0.100048f, -0.097487f, -0.094700f, -0.092100f, -0.088978f, -0.085876f, -0.083143f, -0.080695f, -0.078456f, -0.076429f, -0.074524f, -0.072428f,
-0.069662f, -0.066001f, -0.062027f, -0.058295f, -0.054730f, -0.051139f, -0.047873f, -0.045526f, -0.043527f, -0.041762f, -0.040051f, -0.038488f,
-0.037156f, -0.035391f, -0.033577f, -0.031431f, -0.028703f, -0.025508f, -0.022503f, -0.019363f, -0.015649f, -0.011717f, -0.008167f, -0.004700f,
-0.001436f, 0.001239f, 0.003550f, 0.005364f, 0.006880f, 0.008274f, 0.009645f, 0.010568f, 0.011226f, 0.011596f, 0.012057f, 0.012571f,
0.013156f, 0.013932f, 0.015046f, 0.016137f, 0.017586f, 0.019015f, 0.020676f, 0.023073f, 0.025994f, 0.028873f, 0.032013f, 0.035361f,
0.038402f, 0.041303f, 0.043862f, 0.046117f, 0.048353f, 0.050389f, 0.052443f, 0.054532f, 0.057242f, 0.060491f, 0.063487f, 0.066458f,
0.069789f, 0.073065f, 0.075896f, 0.078869f, 0.081637f, 0.084026f, 0.085883f, 0.087486f, 0.088794f, 0.089887f, 0.090992f, 0.091912f,
0.092636f, 0.093193f, 0.094001f, 0.094653f, 0.095021f, 0.095134f, 0.095046f, 0.095137f, 0.095425f, 0.096194f, 0.097298f, 0.098335f,
0.099797f, 0.102024f, 0.104614f, 0.107295f, 0.110310f, 0.113728f, 0.116891f, 0.119887f, 0.122854f, 0.126099f, 0.129216f, 0.132517f,
0.136012f, 0.139068f, 0.141700f, 0.144159f, 0.146184f, 0.147686f, 0.149190f, 0.150394f, 0.151370f, 0.152076f, 0.152810f, 0.153885f,
0.154818f, 0.155632f, 0.156584f, 0.157369f, 0.157882f, 0.158518f, 0.159423f, 0.160052f, 0.160625f, 0.161199f, 0.161811f, 0.162464f,
0.163121f, 0.164297f, 0.165843f, 0.167568f, 0.168973f, 0.170140f, 0.171371f, 0.172388f, 0.173762f, 0.175357f, 0.176710f, 0.177838f,
0.178656f, 0.179132f, 0.179706f, 0.180579f, 0.181343f, 0.181900f, 0.182436f, 0.182887f, 0.183437f, 0.184146f, 0.184396f, 0.184579f,
0.184659f, 0.184364f, 0.183887f, 0.182888f, 0.181690f, 0.180737f, 0.180256f, 0.180389f, 0.181023f, 0.182226f, 0.183974f, 0.186169f,
0.189159f, 0.192359f, 0.195637f, 0.199095f, 0.202212f, 0.204957f, 0.207258f, 0.209357f, 0.211029f, 0.212883f, 0.214633f, 0.215803f,
0.216819f, 0.217535f, 0.218339f, 0.218551f, 0.218445f, 0.218250f, 0.217686f, 0.217154f, 0.217046f, 0.217143f, 0.217360f, 0.217739f,
0.218151f, 0.218458f, 0.218837f, 0.219553f, 0.220327f, 0.221653f, 0.222935f, 0.224283f, 0.225369f, 0.225640f, 0.225704f, 0.226172f,
0.226778f, 0.226987f, 0.226724f, 0.226080f, 0.225238f, 0.224871f, 0.224877f, 0.225027f, 0.225645f, 0.226648f, 0.227718f, 0.228663f,
0.229131f, 0.229359f, 0.229981f, 0.230526f, 0.231366f, 0.232020f, 0.232358f, 0.232722f, 0.232948f, 0.233033f, 0.232617f, 0.232276f,
0.232226f, 0.232338f, 0.232773f, 0.233334f, 0.233542f, 0.233699f, 0.233902f, 0.233948f, 0.234081f, 0.234105f, 0.233989f, 0.234259f,
0.234568f, 0.234771f, 0.235321f, 0.235884f, 0.235996f, 0.235805f, 0.234924f, 0.233588f, 0.232495f, 0.231738f, 0.231050f, 0.230432f,
0.229865f, 0.228736f, 0.227451f, 0.226127f, 0.224675f, 0.223277f, 0.221639f, 0.220318f, 0.219796f, 0.219744f, 0.220561f, 0.221869f,
0.223753f, 0.226179f, 0.229217f, 0.232620f, 0.235798f, 0.238013f, 0.239827f, 0.241086f, 0.240945f, 0.240345f, 0.239005f, 0.237314f,
0.235704f, 0.234185f, 0.232578f, 0.231009f, 0.229967f, 0.229715f, 0.229818f, 0.230606f, 0.231674f, 0.232433f, 0.233038f, 0.233450f,
0.233935f, 0.234430f, 0.234499f, 0.234675f, 0.235083f, 0.235434f, 0.235488f, 0.235856f, 0.236166f, 0.236223f, 0.236069f, 0.235621f,
0.235332f, 0.235142f, 0.234998f, 0.234888f, 0.235004f, 0.235282f, 0.235248f, 0.234720f, 0.233563f, 0.231799f, 0.229707f, 0.227120f,
0.224700f, 0.223087f, 0.222396f, 0.222292f, 0.222299f, 0.222586f, 0.222720f, 0.223058f, 0.223412f, 0.223478f, 0.223562f, 0.224149f,
0.224972f, 0.225980f, 0.227260f, 0.228289f, 0.228738f, 0.229013f, 0.228931f, 0.228618f, 0.228603f, 0.228886f, 0.229059f, 0.229228f,
0.229404f, 0.229449f, 0.229804f, 0.230431f, 0.230593f, 0.230762f, 0.230771f, 0.230258f, 0.229582f, 0.228757f, 0.227842f, 0.226514f,
0.225157f, 0.223780f, 0.222538f, 0.221595f, 0.220875f, 0.219765f, 0.218758f, 0.217877f, 0.217148f, 0.216273f, 0.215665f, 0.215368f,
0.215409f, 0.215724f, 0.216474f, 0.217531f, 0.218623f, 0.220137f, 0.221550f, 0.222809f, 0.223735f, 0.223963f, 0.223434f, 0.221983f,
0.220319f, 0.218207f, 0.215377f, 0.212008f, 0.208477f, 0.205017f, 0.202467f, 0.200613f, 0.199582f, 0.198813f, 0.198419f, 0.198608f,
};


#define pink_glitch_count 1200

SGFLT pink_glitch_array[pink_glitch_count]  = {
0.249594f, 0.190214f, 0.110497f, 0.022413f, -0.032428f, -0.053259f, -0.012545f, 0.004162f, 0.029873f, 0.082478f, 0.107270f, 0.134238f,
0.121275f, 0.100527f, 0.096855f, 0.037102f, -0.049635f, -0.106694f, -0.134142f, -0.131868f, -0.098549f, -0.074603f, -0.088725f, -0.069200f,
0.008691f, 0.140376f, 0.231102f, 0.254902f, 0.257518f, 0.210447f, 0.178586f, 0.165382f, 0.132408f, 0.074793f, 0.038248f, 0.074966f,
0.049378f, -0.021989f, -0.075508f, -0.095327f, -0.108285f, -0.074299f, -0.065714f, -0.086762f, -0.095129f, -0.078542f, -0.024568f, 0.007327f,
0.022255f, -0.002184f, -0.020529f, -0.035182f, -0.063648f, -0.058746f, -0.057515f, -0.062488f, -0.127960f, -0.135610f, -0.130656f, -0.142319f,
-0.110437f, -0.132676f, -0.173665f, -0.188321f, -0.204827f, -0.198787f, -0.174982f, -0.226564f, -0.280807f, -0.296389f, -0.281282f, -0.254318f,
-0.191608f, -0.112345f, -0.114345f, -0.093364f, -0.093748f, -0.127255f, -0.127694f, -0.146100f, -0.170311f, -0.156047f, -0.095411f, -0.037333f,
-0.000904f, 0.045802f, 0.055391f, 0.125755f, 0.168049f, 0.186335f, 0.186194f, 0.145814f, 0.126050f, 0.082072f, 0.047288f, -0.003404f,
-0.006002f, -0.011336f, -0.047733f, -0.073576f, -0.094109f, -0.157229f, -0.160482f, -0.214346f, -0.298470f, -0.329308f, -0.314929f, -0.297816f,
-0.302856f, -0.285736f, -0.286896f, -0.276515f, -0.296841f, -0.319750f, -0.317392f, -0.267173f, -0.248740f, -0.221707f, -0.220044f, -0.275814f,
-0.315747f, -0.316384f, -0.352484f, -0.390625f, -0.432626f, -0.474590f, -0.487534f, -0.460452f, -0.414087f, -0.378281f, -0.329668f, -0.261993f,
-0.229190f, -0.254255f, -0.318772f, -0.436045f, -0.563295f, -0.658200f, -0.715877f, -0.716715f, -0.660423f, -0.618720f, -0.583085f, -0.585952f,
-0.588069f, -0.610782f, -0.621422f, -0.624708f, -0.573308f, -0.540518f, -0.517441f, -0.465192f, -0.392135f, -0.342611f, -0.318933f, -0.349978f,
-0.377291f, -0.397234f, -0.411414f, -0.414454f, -0.391157f, -0.350378f, -0.295532f, -0.279844f, -0.292251f, -0.302009f, -0.303473f, -0.323400f,
-0.343357f, -0.345017f, -0.355160f, -0.368852f, -0.425648f, -0.454402f, -0.470207f, -0.449832f, -0.391154f, -0.355150f, -0.348989f, -0.345744f,
-0.344495f, -0.328139f, -0.271874f, -0.246376f, -0.195045f, -0.155383f, -0.134846f, -0.168397f, -0.184600f, -0.230201f, -0.257826f, -0.270807f,
-0.248795f, -0.214985f, -0.188847f, -0.205462f, -0.238974f, -0.263728f, -0.293303f, -0.337713f, -0.339677f, -0.326757f, -0.308736f, -0.283184f,
-0.253023f, -0.280558f, -0.299719f, -0.231550f, -0.153780f, -0.104962f, -0.098282f, -0.122675f, -0.120589f, -0.133655f, -0.122021f, -0.183799f,
-0.281372f, -0.377060f, -0.452711f, -0.467067f, -0.492259f, -0.546854f, -0.620111f, -0.613346f, -0.572009f, -0.511159f, -0.458377f, -0.384422f,
-0.361788f, -0.360657f, -0.396011f, -0.357421f, -0.340345f, -0.272244f, -0.236873f, -0.188724f, -0.173521f, -0.205111f, -0.243078f, -0.324233f,
-0.467711f, -0.566076f, -0.635037f, -0.714338f, -0.765455f, -0.736131f, -0.695457f, -0.681975f, -0.665291f, -0.640865f, -0.594853f, -0.577264f,
-0.545307f, -0.461068f, -0.358593f, -0.269458f, -0.202332f, -0.111097f, -0.079459f, -0.092982f, -0.146511f, -0.184648f, -0.199827f, -0.192216f,
-0.214943f, -0.229655f, -0.244376f, -0.241743f, -0.272865f, -0.283074f, -0.280035f, -0.303179f, -0.272988f, -0.254834f, -0.194440f, -0.135590f,
-0.068026f, -0.005141f, 0.016454f, -0.004112f, -0.022543f, -0.085948f, -0.200077f, -0.305095f, -0.394149f, -0.463949f, -0.512881f, -0.539393f,
-0.598755f, -0.641815f, -0.647767f, -0.655451f, -0.596288f, -0.492651f, -0.428535f, -0.384694f, -0.366294f, -0.293208f, -0.228328f, -0.177736f,
-0.087194f, -0.021595f, 0.047580f, 0.096281f, 0.091476f, 0.032268f, -0.004569f, -0.051641f, -0.113743f, -0.176932f, -0.233784f, -0.249624f,
-0.251340f, -0.243789f, -0.213940f, -0.178694f, -0.140669f, -0.143204f, -0.102322f, -0.090667f, -0.067366f, -0.046904f, 0.002935f, 0.041872f,
0.074818f, 0.113403f, 0.155510f, 0.165429f, 0.157414f, 0.134169f, 0.119603f, 0.085794f, 0.031558f, -0.046184f, -0.121218f, -0.182754f,
-0.265312f, -0.330340f, -0.345635f, -0.307492f, -0.310119f, -0.281638f, -0.236130f, -0.196013f, -0.121924f, -0.059647f, 0.034718f, 0.101247f,
0.175248f, 0.218465f, 0.197172f, 0.167238f, 0.100667f, 0.025963f, -0.011284f, -0.017538f, -0.008179f, -0.010717f, -0.033511f, -0.098670f,
-0.156284f, -0.134048f, -0.152248f, -0.137827f, -0.150561f, -0.111932f, -0.039273f, -0.006917f, -0.020655f, -0.061969f, -0.118216f, -0.176630f,
-0.191433f, -0.202167f, -0.214707f, -0.198229f, -0.166642f, -0.166139f, -0.133425f, -0.146448f, -0.186835f, -0.254499f, -0.316297f, -0.297604f,
-0.231200f, -0.138007f, -0.052141f, -0.007732f, 0.012890f, -0.001171f, 0.007883f, -0.010608f, -0.033687f, -0.061398f, -0.114111f, -0.191463f,
-0.301331f, -0.408598f, -0.450381f, -0.473389f, -0.420096f, -0.324100f, -0.235087f, -0.188150f, -0.154520f, -0.096141f, -0.084945f, -0.070256f,
-0.055873f, -0.041696f, -0.047686f, -0.078760f, -0.041069f, 0.025928f, 0.131578f, 0.235962f, 0.275805f, 0.338630f, 0.350021f, 0.325288f,
0.297402f, 0.203260f, 0.089192f, -0.033447f, -0.142214f, -0.186086f, -0.190175f, -0.209339f, -0.160169f, -0.141308f, -0.068388f, -0.022031f,
-0.006151f, 0.037611f, 0.054468f, 0.064375f, 0.053681f, -0.020464f, -0.014300f, -0.000458f, 0.028779f, 0.041911f, 0.039228f, 0.049703f,
0.130280f, 0.162059f, 0.177712f, 0.189718f, 0.180336f, 0.168744f, 0.105034f, 0.093013f, 0.014944f, -0.088604f, -0.184584f, -0.254035f,
-0.292748f, -0.311088f, -0.324020f, -0.335200f, -0.348762f, -0.357762f, -0.343467f, -0.294532f, -0.251538f, -0.169639f, -0.099628f, -0.067202f,
-0.056299f, -0.077947f, -0.056340f, -0.058989f, -0.110317f, -0.169361f, -0.200869f, -0.214261f, -0.231896f, -0.264447f, -0.271507f, -0.244252f,
-0.246441f, -0.212034f, -0.147687f, -0.075525f, -0.005688f, 0.091068f, 0.214981f, 0.263150f, 0.285518f, 0.257761f, 0.211127f, 0.213422f,
0.215042f, 0.268692f, 0.314843f, 0.344081f, 0.400877f, 0.445211f, 0.465136f, 0.568981f, 0.657489f, 0.685015f, 0.649032f, 0.615447f,
0.546413f, 0.552073f, 0.562349f, 0.570975f, 0.575921f, 0.572923f, 0.510129f, 0.426518f, 0.335884f, 0.264637f, 0.186349f, 0.076015f,
-0.018323f, -0.031712f, 0.011308f, 0.112503f, 0.130311f, 0.134387f, 0.143396f, 0.120707f, 0.152425f, 0.174042f, 0.186304f, 0.185495f,
0.145702f, 0.093250f, 0.072934f, 0.047040f, 0.029564f, 0.028202f, -0.031059f, -0.093490f, -0.128146f, -0.167078f, -0.178550f, -0.187639f,
-0.201723f, -0.214834f, -0.236192f, -0.293489f, -0.281320f, -0.301473f, -0.265641f, -0.180591f, -0.122953f, -0.072608f, -0.036832f, -0.033038f,
-0.057423f, -0.116675f, -0.196559f, -0.313072f, -0.463646f, -0.575382f, -0.627595f, -0.628230f, -0.568764f, -0.466099f, -0.379203f, -0.308519f,
-0.233283f, -0.174398f, -0.143541f, -0.159239f, -0.129370f, -0.094046f, -0.070865f, -0.075183f, -0.078685f, -0.118799f, -0.165631f, -0.196184f,
-0.228683f, -0.211105f, -0.180555f, -0.159202f, -0.150685f, -0.121893f, -0.019186f, 0.088547f, 0.140940f, 0.153092f, 0.167453f, 0.130472f,
0.085171f, 0.038649f, 0.054361f, 0.091814f, 0.117113f, 0.127388f, 0.103096f, 0.061655f, -0.013242f, -0.080486f, -0.145244f, -0.195985f,
-0.239318f, -0.203912f, -0.125114f, -0.060813f, -0.030040f, -0.006958f, -0.006396f, -0.009157f, -0.022941f, -0.051485f, -0.129108f, -0.205547f,
-0.264700f, -0.285024f, -0.225507f, -0.163074f, -0.096862f, -0.057836f, -0.056316f, -0.071517f, -0.092260f, -0.104829f, -0.059252f, -0.017937f,
-0.006370f, 0.030628f, 0.001201f, -0.029383f, -0.076717f, -0.114601f, -0.161211f, -0.219682f, -0.263076f, -0.274508f, -0.272573f, -0.211707f,
-0.146882f, -0.074171f, -0.028257f, 0.017991f, 0.044098f, 0.011543f, -0.037978f, -0.080985f, -0.114132f, -0.120058f, -0.078197f, -0.050638f,
-0.065504f, -0.060391f, -0.057368f, -0.023214f, 0.029911f, 0.097661f, 0.153908f, 0.172624f, 0.184689f, 0.192351f, 0.175089f, 0.196539f,
0.243357f, 0.273497f, 0.278817f, 0.257773f, 0.198980f, 0.162543f, 0.122406f, 0.076941f, 0.015708f, -0.034771f, -0.091564f, -0.140478f,
-0.209736f, -0.300854f, -0.379574f, -0.405397f, -0.414645f, -0.378910f, -0.299061f, -0.239324f, -0.254695f, -0.223831f, -0.149470f, -0.099760f,
-0.057199f, -0.058052f, -0.017674f, 0.029634f, 0.077476f, 0.082058f, 0.090746f, 0.039692f, 0.017206f, -0.030672f, -0.062760f, -0.071637f,
-0.024070f, 0.002143f, 0.042549f, 0.007911f, 0.033682f, 0.002564f, -0.022714f, -0.045217f, -0.079355f, -0.079539f, -0.090162f, -0.057194f,
-0.042680f, -0.032010f, -0.022420f, -0.001441f, -0.012287f, 0.010320f, 0.014682f, -0.007885f, -0.054516f, -0.130332f, -0.212891f, -0.289103f,
-0.274499f, -0.237666f, -0.197981f, -0.145880f, -0.068536f, -0.026958f, -0.006084f, -0.033716f, -0.090509f, -0.110970f, -0.071813f, -0.027245f,
0.004950f, 0.020823f, 0.039213f, 0.083108f, 0.085363f, 0.047937f, 0.035346f, -0.025464f, -0.097656f, -0.141014f, -0.187266f, -0.186833f,
-0.144098f, -0.031031f, 0.025090f, 0.082380f, 0.129338f, 0.152770f, 0.176862f, 0.226171f, 0.251514f, 0.305516f, 0.314394f, 0.294699f,
0.282497f, 0.205490f, 0.126787f, 0.021899f, -0.076576f, -0.127228f, -0.226834f, -0.279369f, -0.311007f, -0.307503f, -0.286379f, -0.237565f,
-0.143496f, -0.118747f, -0.129891f, -0.180396f, -0.206826f, -0.209213f, -0.235924f, -0.210942f, -0.168859f, -0.163019f, -0.122647f, -0.087404f,
-0.038728f, -0.016182f, 0.016721f, 0.056802f, 0.043173f, -0.004509f, -0.048652f, -0.061015f, -0.102642f, -0.099352f, -0.102173f, -0.062190f,
-0.006315f, 0.047034f, 0.115255f, 0.191195f, 0.201281f, 0.222974f, 0.213505f, 0.225202f, 0.265230f, 0.275547f, 0.243638f, 0.238512f,
0.217509f, 0.158660f, 0.066055f, 0.029097f, -0.013168f, -0.008892f, 0.043083f, 0.164137f, 0.321525f, 0.448666f, 0.541458f, 0.563097f,
0.572327f, 0.527063f, 0.428680f, 0.351466f, 0.293894f, 0.309137f, 0.327120f, 0.395278f, 0.451374f, 0.516536f, 0.632673f, 0.781803f,
0.878109f, 0.977352f, 0.990000f, 0.929178f, 0.791741f, 0.674781f, 0.574160f, 0.465707f, 0.380236f, 0.306869f, 0.258750f, 0.228601f,
0.251438f, 0.278238f, 0.296336f, 0.297157f, 0.292105f, 0.250744f, 0.227361f, 0.198085f, 0.168560f, 0.148748f, 0.110227f, 0.121262f,
0.120907f, 0.155912f, 0.168617f, 0.099083f, 0.051329f, -0.002998f, -0.068287f, -0.151785f, -0.183570f, -0.191472f, -0.166844f, -0.164310f,
-0.171609f, -0.127029f, -0.043633f, 0.068690f, 0.182449f, 0.287637f, 0.374646f, 0.489848f, 0.574220f, 0.648902f, 0.635162f, 0.592695f,
0.568421f, 0.560513f, 0.558548f, 0.528317f, 0.429685f, 0.273050f, 0.075491f, -0.075037f, -0.209447f, -0.223890f, -0.121932f, 0.032411f,
0.136646f, 0.188264f, 0.160116f, 0.141590f, 0.116876f, 0.133917f, 0.169287f, 0.193096f, 0.219231f, 0.222481f, 0.207909f, 0.188004f,
0.087786f, 0.016942f, -0.019215f, -0.009364f, -0.011190f, 0.009784f, 0.011526f, -0.000831f, -0.042269f, -0.108407f, -0.141357f, -0.158959f,
-0.118556f, -0.068645f, 0.005336f, -0.002609f, -0.026340f, -0.020413f, -0.069299f, -0.124611f, -0.143574f, -0.213346f, -0.261344f, -0.300845f,
-0.391416f, -0.462020f, -0.495225f, -0.589987f, -0.642897f, -0.680285f, -0.682087f, -0.669059f, -0.658482f, -0.655153f, -0.604354f, -0.568520f,
-0.526038f, -0.481343f, -0.451494f, -0.382105f, -0.358188f, -0.318395f, -0.270912f, -0.207374f, -0.178727f, -0.224091f, -0.258152f, -0.289354f,
-0.318579f, -0.262680f, -0.102987f, 0.024205f, 0.113344f, 0.177274f, 0.281362f, 0.321764f, 0.310250f, 0.282405f, 0.217139f, 0.185995f,
0.156837f, 0.174300f, 0.174710f, 0.170890f, 0.194787f, 0.230083f, 0.237182f, 0.187137f, 0.133570f, 0.137342f, 0.196297f, 0.271624f,
0.334896f, 0.381266f, 0.427163f, 0.440167f, 0.386582f, 0.316862f, 0.255730f, 0.219068f, 0.289813f, 0.302290f, 0.309035f, 0.317466f,
0.262942f, 0.285805f, 0.267740f, 0.230572f, 0.170701f, 0.146119f, 0.158404f, 0.184095f, 0.167463f, 0.110728f, 0.013423f, -0.116170f,
-0.273511f, -0.366657f, -0.377221f, -0.330142f, -0.274302f, -0.263893f, -0.204482f, -0.165648f, -0.125513f, -0.072920f, 0.000511f, 0.044630f,
0.095815f, 0.135304f, 0.118066f, 0.103393f, 0.114058f, 0.062122f, -0.030074f, -0.163252f, -0.279362f, -0.379727f, -0.409152f, -0.380645f,
-0.343724f, -0.305559f, -0.240261f, -0.177459f, -0.122322f, -0.029033f, 0.068472f, 0.143908f, 0.260933f, 0.322233f, 0.372550f, 0.352188f,
0.338113f, 0.320054f, 0.371432f, 0.387104f, 0.402174f, 0.336606f, 0.272127f, 0.257536f, 0.203023f, 0.168569f, 0.121157f, 0.093094f,
0.010545f, -0.055123f, -0.098925f, -0.113872f, -0.130844f, -0.083206f, -0.076638f, -0.058585f, -0.054107f, -0.094004f, -0.130833f, -0.107243f,
-0.100248f, -0.109842f, -0.104845f, -0.118193f, -0.096829f, -0.077455f, -0.042164f, 0.008188f, 0.080218f, 0.149246f, 0.202415f, 0.247155f,
0.307950f, 0.393080f, 0.491298f, 0.541464f, 0.555037f, 0.515427f, 0.456446f, 0.417988f, 0.396789f, 0.419549f, 0.415055f, 0.378292f,
0.309110f, 0.245635f, 0.222817f, 0.211780f, 0.240148f, 0.273761f, 0.241664f, 0.257364f, 0.257183f, 0.188926f, 0.130146f, 0.066662f,
0.047433f, 0.066039f, 0.090237f, 0.032209f, -0.027950f, -0.071876f, -0.098171f, -0.174930f, -0.177276f, -0.118431f, -0.068896f, -0.040742f,
-0.006844f, 0.064616f, 0.154958f, 0.263828f, 0.390849f, 0.490411f, 0.523828f, 0.493918f, 0.467786f, 0.447456f, 0.472682f, 0.524018f,
0.550773f, 0.558742f, 0.545231f, 0.478524f, 0.406178f, 0.360426f, 0.335179f, 0.325206f, 0.282157f, 0.318685f, 0.362490f, 0.435494f,
0.478371f, 0.511080f, 0.526726f, 0.508798f, 0.507481f, 0.506991f, 0.505088f, 0.491228f, 0.485104f, 0.477764f, 0.527948f, 0.615436f,
0.671862f, 0.711638f, 0.745844f, 0.727137f, 0.681913f, 0.629536f, 0.602756f, 0.567620f, 0.551225f, 0.523769f, 0.523278f, 0.573219f,
0.563292f, 0.532284f, 0.483820f, 0.398893f, 0.271838f, 0.153262f, 0.093352f, 0.063510f, 0.051294f, 0.085070f, 0.123549f, 0.219508f,
0.290891f, 0.326534f, 0.344994f, 0.387581f, 0.431531f, 0.522927f, 0.565317f, 0.536382f, 0.509138f, 0.484813f, 0.460390f, 0.414391f,
0.377753f, 0.342880f, 0.304343f, 0.238241f, 0.217066f, 0.165925f, 0.136523f, 0.118998f, 0.163792f, 0.206523f, 0.244144f, 0.216932f,
0.164030f, 0.149187f, 0.166334f, 0.198573f, 0.256746f, 0.286900f, 0.326328f, 0.357547f, 0.364899f, 0.416670f, 0.437980f, 0.468693f,
};


#define white_glitch_count 1200

SGFLT white_glitch_array[white_glitch_count]  = {
-0.059280f, -0.018552f, 0.050702f, -0.065081f, 0.133528f, 0.226431f, 0.327102f, 0.059268f, 0.126628f, -0.044956f, -0.102004f, 0.154192f,
0.011477f, 0.059027f, 0.231712f, 0.126588f, 0.073679f, 0.165649f, 0.242075f, 0.215547f, 0.421827f, 0.518725f, 0.574005f, 0.381703f,
0.267408f, 0.503118f, 0.556335f, 0.322930f, 0.280090f, 0.390192f, 0.353661f, 0.302068f, 0.128837f, 0.112170f, 0.178456f, -0.048732f,
-0.021620f, -0.132263f, -0.186303f, -0.093627f, -0.109316f, -0.149424f, -0.100493f, -0.203914f, -0.282291f, -0.176543f, -0.398165f, -0.305287f,
-0.212648f, 0.025715f, -0.070926f, -0.104389f, -0.201018f, -0.008241f, 0.068464f, 0.310248f, 0.139015f, 0.146182f, 0.107610f, 0.202591f,
0.313245f, 0.340110f, 0.090721f, -0.064719f, 0.116017f, 0.058154f, -0.023577f, -0.331105f, -0.421216f, -0.498976f, -0.118054f, -0.102207f,
-0.060458f, -0.064147f, 0.276940f, 0.253125f, 0.394028f, 0.501414f, 0.219514f, 0.230631f, 0.294481f, 0.357243f, 0.106281f, 0.004518f,
-0.079467f, 0.227975f, 0.208415f, 0.088418f, 0.128255f, 0.006441f, 0.013509f, -0.196955f, -0.057752f, 0.033763f, 0.094782f, 0.373511f,
0.290524f, 0.076738f, 0.347522f, 0.456991f, 0.368493f, 0.351446f, 0.343120f, 0.351638f, 0.024237f, -0.098456f, -0.121553f, -0.113302f,
-0.187421f, 0.023431f, 0.099654f, 0.304923f, 0.296468f, 0.275949f, 0.364177f, 0.430995f, 0.203569f, 0.256921f, 0.029093f, -0.134374f,
-0.274933f, -0.004234f, -0.022917f, 0.026351f, 0.181956f, 0.299113f, 0.347872f, 0.248791f, 0.369568f, 0.140903f, 0.181070f, 0.222650f,
0.270107f, 0.365802f, 0.323476f, 0.268778f, 0.055090f, -0.131771f, -0.176882f, -0.100719f, -0.088935f, 0.102465f, 0.057389f, 0.109189f,
0.056230f, -0.005238f, 0.074243f, -0.013857f, -0.262159f, -0.075115f, -0.183188f, -0.083192f, -0.371711f, -0.105762f, -0.177554f, -0.280616f,
-0.298667f, -0.277667f, -0.114582f, -0.338789f, -0.399159f, -0.340851f, -0.337664f, -0.387701f, -0.183099f, -0.044311f, 0.042257f, 0.170282f,
0.077897f, 0.085831f, 0.291427f, 0.346984f, 0.235970f, 0.289152f, 0.523957f, 0.257435f, 0.269207f, 0.020970f, 0.085363f, 0.052591f,
-0.091326f, 0.062134f, 0.026106f, -0.104465f, -0.145500f, -0.029519f, -0.121809f, -0.354360f, -0.123920f, -0.248325f, -0.195989f, -0.350534f,
-0.360270f, -0.195239f, -0.177537f, -0.132706f, -0.105330f, 0.070503f, -0.066950f, -0.489263f, -0.338862f, -0.405442f, -0.299651f, -0.270525f,
-0.362393f, -0.154744f, -0.162484f, 0.010318f, 0.091704f, 0.091381f, 0.199475f, 0.049753f, 0.030980f, -0.303378f, -0.127347f, 0.002502f,
0.030350f, 0.037352f, 0.079019f, 0.010031f, 0.085942f, 0.182003f, 0.207771f, 0.139284f, 0.209712f, 0.107224f, 0.433202f, 0.318273f,
0.094690f, 0.131852f, 0.301443f, 0.268031f, 0.056560f, 0.142566f, 0.175622f, 0.114170f, 0.125835f, 0.030466f, 0.189359f, 0.278786f,
0.273712f, 0.199208f, 0.175455f, 0.148321f, 0.132187f, 0.039685f, -0.007839f, -0.036911f, -0.241816f, -0.378105f, -0.593719f, -0.523331f,
-0.899093f, -0.777333f, -0.760123f, -0.990000f, -0.740994f, -0.700601f, -0.515487f, -0.279253f, -0.199954f, -0.128220f, -0.032660f, -0.293472f,
-0.203077f, -0.173738f, -0.190993f, -0.143250f, -0.277247f, -0.343161f, -0.162814f, -0.286908f, -0.146872f, -0.254843f, -0.208915f, -0.300937f,
-0.222420f, -0.246003f, -0.168602f, -0.155084f, -0.078691f, 0.170276f, -0.022290f, -0.089027f, -0.089904f, -0.196270f, -0.191638f, 0.045178f,
0.052867f, 0.212575f, 0.229976f, 0.396115f, 0.446124f, 0.113183f, 0.263107f, 0.160731f, -0.022524f, 0.032010f, 0.042092f, -0.190212f,
-0.161613f, -0.251826f, -0.433559f, -0.347027f, -0.518077f, -0.350161f, -0.121785f, -0.198791f, 0.039213f, 0.126286f, 0.025028f, 0.176449f,
0.286923f, 0.139827f, 0.269287f, 0.093107f, -0.105662f, -0.184854f, -0.160431f, -0.039334f, 0.060355f, 0.190428f, 0.228784f, 0.007735f,
0.160330f, 0.130328f, 0.228377f, 0.209795f, 0.230021f, 0.135435f, 0.202507f, 0.120596f, 0.011731f, 0.280653f, 0.263847f, 0.391977f,
0.616763f, 0.532089f, 0.646207f, 0.487416f, 0.389714f, 0.265614f, 0.384387f, 0.097922f, 0.097317f, 0.170874f, 0.266110f, 0.282337f,
0.432368f, 0.333329f, 0.307617f, 0.552730f, 0.333544f, 0.365032f, 0.241660f, 0.097213f, 0.144257f, -0.120777f, -0.095376f, -0.363425f,
-0.199566f, -0.283724f, -0.366566f, -0.505831f, -0.289391f, -0.244559f, -0.380014f, -0.497036f, -0.316719f, -0.483803f, -0.303375f, -0.233022f,
-0.333383f, -0.095460f, -0.142048f, -0.093172f, -0.169568f, -0.123076f, -0.300405f, -0.186595f, -0.295202f, -0.016240f, -0.141428f, -0.167873f,
0.058201f, -0.035304f, 0.163176f, 0.110733f, -0.039963f, 0.116582f, 0.064805f, -0.000037f, 0.282640f, 0.214909f, 0.120824f, 0.147267f,
-0.159968f, -0.224168f, -0.412116f, -0.500442f, -0.337300f, -0.393148f, -0.295382f, -0.305875f, -0.232232f, -0.396709f, -0.234668f, -0.211603f,
-0.464457f, -0.639171f, -0.547535f, -0.612123f, -0.595095f, -0.293294f, -0.370675f, -0.270491f, -0.072749f, -0.054541f, -0.072431f, -0.115839f,
0.097749f, 0.034936f, -0.129587f, -0.119212f, -0.087954f, 0.175265f, 0.108789f, 0.247970f, 0.038336f, 0.144189f, 0.356386f, 0.265828f,
0.264030f, 0.074500f, -0.082027f, -0.027273f, -0.037395f, -0.122172f, -0.211615f, -0.237038f, -0.099925f, -0.110577f, 0.099374f, 0.009709f,
0.039498f, 0.275170f, 0.132593f, -0.021802f, -0.111864f, 0.022150f, 0.098837f, -0.055059f, 0.052698f, 0.191729f, 0.151730f, 0.432256f,
0.353238f, 0.247929f, 0.251700f, 0.384514f, 0.283426f, 0.356953f, 0.256452f, 0.242111f, 0.319047f, 0.288357f, 0.254580f, 0.205154f,
0.192502f, 0.281721f, 0.245124f, 0.360398f, 0.357369f, 0.252945f, 0.419044f, 0.163234f, 0.176642f, 0.245840f, 0.201807f, 0.220024f,
0.074639f, -0.019412f, -0.064625f, 0.052326f, -0.019278f, 0.041976f, -0.046701f, 0.046791f, 0.322895f, 0.353708f, 0.254192f, 0.407644f,
0.468382f, 0.460493f, 0.522644f, 0.361279f, 0.384712f, 0.430520f, 0.378058f, 0.462612f, 0.440140f, 0.435320f, 0.435023f, 0.590608f,
0.571747f, 0.377111f, 0.454686f, 0.519306f, 0.339857f, 0.163499f, 0.076237f, 0.175991f, 0.301577f, 0.463973f, 0.285441f, 0.372862f,
0.028469f, 0.266372f, 0.304298f, 0.059033f, 0.046103f, 0.026840f, -0.071273f, 0.061818f, 0.286538f, 0.082222f, 0.081347f, -0.016047f,
-0.002933f, -0.362332f, -0.274858f, -0.203264f, -0.135681f, -0.294466f, -0.368007f, -0.227398f, -0.414413f, -0.240256f, -0.261113f, -0.356782f,
-0.320657f, -0.014451f, -0.124972f, 0.221451f, 0.050446f, 0.023511f, 0.010444f, 0.092349f, -0.129145f, -0.204196f, -0.129798f, -0.008847f,
-0.123903f, -0.162524f, -0.207110f, -0.212890f, -0.018814f, -0.078847f, 0.030979f, 0.035294f, 0.191612f, 0.114115f, 0.028851f, 0.092897f,
0.189315f, 0.364010f, 0.393306f, 0.356267f, 0.380135f, 0.079342f, -0.125637f, -0.119703f, -0.409761f, -0.299426f, -0.144042f, -0.165450f,
-0.095673f, -0.054676f, -0.120845f, -0.154481f, 0.040538f, -0.029625f, 0.122534f, 0.172132f, -0.056082f, -0.129318f, -0.190709f, -0.427227f,
-0.454967f, -0.405869f, -0.292140f, -0.110222f, -0.175631f, -0.015608f, 0.182768f, 0.480537f, 0.440804f, 0.223870f, 0.300460f, 0.006016f,
-0.003481f, -0.032585f, 0.146452f, 0.329255f, 0.257646f, 0.219752f, 0.240420f, 0.230251f, 0.337789f, 0.119362f, 0.134593f, -0.046947f,
-0.085838f, -0.195410f, -0.200558f, -0.090751f, -0.122616f, -0.345525f, -0.294685f, -0.427602f, -0.551742f, -0.452827f, -0.380939f, -0.419675f,
-0.266628f, -0.334990f, -0.253846f, -0.069652f, -0.069267f, 0.055993f, 0.141335f, 0.073505f, -0.002520f, -0.113648f, -0.014977f, 0.028743f,
-0.117758f, -0.094761f, -0.231685f, -0.430987f, -0.568806f, -0.558134f, -0.531306f, -0.453924f, -0.205908f, -0.007042f, 0.064481f, 0.247163f,
0.277730f, 0.240820f, 0.284424f, 0.266377f, 0.282172f, 0.194924f, 0.540258f, 0.618394f, 0.477243f, 0.118254f, 0.341577f, 0.165139f,
0.227176f, 0.125393f, 0.275047f, 0.294123f, 0.250389f, 0.250684f, 0.112312f, 0.160302f, 0.222578f, 0.114667f, 0.046314f, -0.169843f,
-0.074172f, -0.162074f, -0.363883f, -0.199302f, -0.198741f, -0.475150f, -0.407168f, -0.251242f, -0.144449f, -0.093006f, -0.087058f, -0.106012f,
-0.248847f, -0.170248f, -0.153114f, -0.022559f, -0.118709f, -0.036302f, -0.387411f, -0.480518f, -0.313095f, -0.484989f, -0.449494f, -0.470056f,
-0.603972f, -0.597574f, -0.565949f, -0.524757f, -0.612127f, -0.473198f, -0.365573f, -0.128572f, -0.029442f, 0.007682f, 0.138975f, 0.158418f,
0.008140f, -0.006811f, 0.018956f, -0.035395f, -0.056953f, -0.033664f, -0.007057f, -0.292275f, -0.424903f, -0.409666f, -0.336834f, -0.655358f,
-0.459547f, -0.507418f, -0.354284f, -0.303080f, -0.485269f, -0.485908f, -0.272937f, -0.294284f, -0.184035f, -0.072780f, 0.102269f, 0.068855f,
-0.089600f, 0.008411f, 0.068995f, 0.031152f, -0.026511f, -0.000835f, -0.127693f, -0.296215f, -0.279861f, -0.252372f, -0.184799f, -0.017805f,
-0.254155f, -0.048063f, -0.062705f, -0.165656f, 0.029915f, 0.042264f, -0.034382f, -0.184073f, -0.000040f, 0.049876f, 0.149623f, 0.054192f,
0.120372f, 0.350622f, 0.197571f, 0.205226f, 0.133482f, 0.112366f, 0.050089f, 0.179179f, 0.095926f, 0.009952f, -0.020460f, 0.018524f,
-0.161617f, -0.133264f, -0.119430f, -0.173184f, -0.217702f, -0.229417f, -0.548212f, -0.337320f, -0.707200f, -0.428787f, -0.489254f, -0.434464f,
-0.639939f, -0.568370f, -0.382945f, -0.566409f, -0.590540f, -0.492418f, -0.316459f, -0.248427f, -0.047891f, 0.010140f, -0.124668f, -0.170517f,
-0.035830f, -0.144422f, 0.072950f, 0.032122f, 0.274985f, 0.359058f, 0.218949f, 0.089172f, 0.153608f, 0.020631f, -0.107849f, -0.084265f,
-0.035057f, -0.049260f, -0.053353f, -0.073636f, -0.259673f, -0.192661f, -0.392205f, -0.497637f, -0.301665f, -0.078569f, -0.044442f, -0.100237f,
-0.110534f, -0.066048f, -0.025209f, -0.287180f, -0.381799f, -0.213444f, -0.198812f, -0.306778f, -0.001090f, -0.120791f, 0.142213f, 0.104505f,
0.085366f, 0.097341f, 0.341396f, 0.182889f, -0.007192f, 0.091424f, 0.067242f, 0.140477f, 0.137039f, 0.163648f, 0.322779f, 0.246698f,
0.118401f, 0.308228f, 0.205968f, 0.115569f, 0.090039f, -0.140257f, -0.412462f, -0.508607f, -0.214514f, -0.122573f, -0.204327f, -0.174753f,
-0.095655f, -0.268862f, -0.159438f, -0.185049f, -0.148627f, -0.186402f, -0.050701f, -0.050210f, -0.012344f, 0.078637f, -0.019514f, -0.048319f,
0.055670f, 0.071642f, 0.339966f, -0.006574f, 0.218072f, -0.031584f, -0.115072f, -0.058533f, 0.063046f, -0.141149f, -0.213092f, -0.024872f,
0.038975f, 0.144504f, 0.144426f, 0.008353f, -0.060907f, -0.085811f, -0.125588f, -0.317679f, -0.243688f, -0.127582f, -0.358717f, -0.259146f,
-0.336000f, -0.582973f, -0.333806f, -0.298231f, -0.234849f, -0.268725f, -0.180453f, -0.224472f, -0.103830f, -0.227110f, -0.446941f, -0.480587f,
-0.796324f, -0.556674f, -0.601319f, -0.408311f, -0.458825f, -0.571931f, -0.747706f, -0.577408f, -0.232536f, -0.096996f, -0.035405f, -0.023011f,
-0.099031f, -0.096887f, -0.209731f, 0.023957f, -0.016975f, -0.184151f, -0.367735f, -0.425559f, -0.306251f, -0.470366f, -0.544094f, -0.610604f,
-0.566237f, -0.590474f, -0.523807f, -0.624910f, -0.550571f, -0.474351f, -0.281686f, -0.254545f, -0.244144f, -0.225818f, -0.308185f, -0.400410f,
-0.521655f, -0.277386f, -0.357601f, -0.387310f, -0.478387f, -0.193358f, -0.103557f, 0.100680f, -0.044643f, 0.014748f, 0.091709f, 0.086894f,
0.153010f, 0.028787f, -0.327094f, -0.276633f, -0.242160f, -0.367519f, -0.350790f, -0.311152f, -0.099503f, -0.221281f, -0.183784f, -0.353898f,
-0.312898f, -0.177556f, -0.355864f, -0.404739f, -0.206813f, -0.285987f, -0.462533f, -0.254633f, -0.312349f, -0.266442f, -0.079282f, -0.095654f,
-0.032361f, -0.078516f, -0.016442f, -0.244926f, -0.359864f, -0.326701f, -0.444825f, -0.234622f, -0.196578f, -0.264262f, -0.129024f, -0.182616f,
-0.075531f, -0.298077f, -0.140357f, -0.360345f, -0.286810f, -0.267553f, -0.240129f, -0.212253f, -0.108237f, -0.137424f, 0.012992f, -0.172454f,
-0.166848f, -0.142578f, -0.234218f, -0.255092f, -0.180465f, -0.298013f, -0.097266f, -0.024419f, 0.195910f, 0.032396f, -0.081323f, -0.010824f,
-0.032725f, -0.082178f, -0.085559f, -0.047189f, -0.138431f, -0.246450f, -0.117424f, -0.016958f, -0.100342f, -0.135157f, -0.244482f, -0.411644f,
-0.186749f, -0.229667f, -0.024399f, -0.062604f, 0.017908f, 0.044195f, -0.100771f, 0.021764f, -0.111131f, -0.390674f, -0.064240f, -0.112701f,
0.113666f, -0.056696f, -0.067323f, -0.240427f, -0.162827f, -0.302473f, -0.251094f, -0.077199f, -0.004520f, 0.325982f, 0.359423f, 0.203311f,
0.597727f, 0.476244f, 0.428947f, 0.535248f, 0.510536f, 0.461781f, 0.445200f, 0.190485f, 0.055981f, 0.046937f, -0.002245f, 0.107403f,
-0.098222f, -0.047304f, -0.074860f, -0.139374f, -0.114695f, -0.098822f, 0.018022f, -0.099624f, -0.031862f, -0.073737f, -0.182528f, -0.160651f,
-0.193104f, -0.516314f, -0.469943f, -0.352667f, -0.361050f, -0.386484f, -0.208782f, -0.086458f, 0.075347f, 0.130258f, 0.254440f, 0.211323f,
0.256146f, 0.619493f, 0.712821f, 0.683047f, 0.787926f, 0.849387f, 0.847690f, 0.491173f, 0.287865f, 0.215969f, 0.045232f, 0.076972f,
-0.146926f, -0.119610f, -0.161756f, -0.201362f, -0.213738f, -0.250614f, -0.284598f, -0.298618f, -0.470359f, -0.244380f, -0.179968f, 0.224687f,
0.221799f, 0.175659f, 0.111824f, 0.209487f, 0.033021f, 0.066300f, 0.209323f, 0.365030f, 0.180021f, 0.014930f, -0.112649f, -0.174613f,
-0.347283f, -0.448422f, -0.261661f, -0.374125f, -0.165218f, -0.088136f, -0.239351f, -0.136523f, 0.030463f, 0.023367f, 0.117873f, 0.261339f,
-0.034412f, 0.057586f, 0.188753f, -0.091497f, -0.213195f, -0.246159f, -0.376065f, -0.312392f, -0.306411f, -0.175760f, -0.123213f, -0.071835f,
-0.091297f, -0.186247f, -0.158227f, -0.240792f, -0.210406f, 0.105878f, -0.042521f, -0.096869f, -0.194069f, -0.176296f, -0.272177f, -0.049079f,
-0.101691f, -0.149561f, -0.153292f, -0.116498f, -0.154614f, -0.363278f, -0.562500f, -0.387970f, -0.259487f, -0.354548f, -0.198817f, -0.094719f,
-0.070892f, -0.178075f, -0.061082f, 0.067081f, 0.356784f, 0.267520f, 0.464418f, 0.583889f, 0.405249f, 0.469421f, 0.333669f, 0.435723f,
0.250349f, 0.052156f, -0.106620f, -0.124662f, -0.024534f, -0.090673f, 0.151891f, 0.182895f, 0.057054f, 0.034757f, 0.127816f, 0.082651f,
0.055914f, -0.284370f, -0.047608f, -0.319262f, -0.337643f, -0.090329f, -0.189174f, -0.250832f, -0.147435f, -0.083067f, 0.160620f, 0.179966f,
};


#define acid_count 1200

SGFLT acid_array[acid_count]  = {
0.975014f, 0.973339f, 0.972238f, 0.971597f, 0.971292f, 0.971210f, 0.971259f, 0.971372f, 0.971504f, 0.971627f, 0.971728f, 0.971804f,
0.971856f, 0.971887f, 0.971903f, 0.971910f, 0.971910f, 0.971907f, 0.971904f, 0.971902f, 0.971900f, 0.971898f, 0.971897f, 0.971895f,
0.971894f, 0.971893f, 0.971893f, 0.971892f, 0.971891f, 0.971891f, 0.971890f, 0.971736f, 0.971768f, 0.972448f, 0.973487f, 0.973975f,
0.972794f, 0.968999f, 0.962031f, 0.951763f, 0.938442f, 0.922563f, 0.904747f, 0.885630f, 0.865786f, 0.845689f, 0.825694f, 0.806049f,
0.786913f, 0.768370f, 0.750463f, 0.733202f, 0.716585f, 0.700605f, 0.685256f, 0.670538f, 0.656454f, 0.643015f, 0.630233f, 0.618124f,
0.606704f, 0.595991f, 0.586001f, 0.576749f, 0.568249f, 0.560513f, 0.553553f, 0.547378f, 0.541993f, 0.537407f, 0.533622f, 0.530642f,
0.528468f, 0.527100f, 0.526536f, 0.526775f, 0.527811f, 0.529639f, 0.532253f, 0.535643f, 0.539801f, 0.544715f, 0.550374f, 0.556765f,
0.563872f, 0.571680f, 0.580172f, 0.589330f, 0.599136f, 0.609568f, 0.620607f, 0.632229f, 0.644413f, 0.657133f, 0.670366f, 0.684087f,
0.698268f, 0.712884f, 0.727906f, 0.743307f, 0.759058f, 0.775130f, 0.791494f, 0.808120f, 0.824977f, 0.841877f, 0.859190f, 0.877210f,
0.895577f, 0.913440f, 0.929824f, 0.943928f, 0.955287f, 0.963804f, 0.969681f, 0.973324f, 0.975227f, 0.975892f, 0.975764f, 0.975200f,
0.974461f, 0.973719f, 0.973072f, 0.972562f, 0.972195f, 0.971955f, 0.971816f, 0.971752f, 0.971736f, 0.971748f, 0.971774f, 0.971803f,
0.971831f, 0.971853f, 0.971869f, 0.971880f, 0.971886f, 0.971890f, 0.971889f, 0.971889f, 0.971889f, 0.971888f, 0.971888f, 0.971888f,
0.971888f, 0.971888f, 0.971888f, 0.971888f, 0.971888f, 0.971888f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f,
0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f,
0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f,
0.971887f, 0.971887f, 0.971774f, 0.971808f, 0.972298f, 0.973029f, 0.973351f, 0.972481f, 0.969763f, 0.964812f, 0.957550f, 0.948157f,
0.936985f, 0.924472f, 0.911064f, 0.897162f, 0.883098f, 0.869119f, 0.855396f, 0.842039f, 0.829107f, 0.816627f, 0.804607f, 0.793045f,
0.781936f, 0.771275f, 0.761062f, 0.751300f, 0.741995f, 0.733156f, 0.724795f, 0.716921f, 0.709548f, 0.702686f, 0.696346f, 0.690538f,
0.685269f, 0.680547f, 0.676378f, 0.672767f, 0.669718f, 0.667233f, 0.665314f, 0.663962f, 0.663177f, 0.662956f, 0.663299f, 0.664201f,
0.665658f, 0.667666f, 0.670218f, 0.673307f, 0.676926f, 0.681065f, 0.685716f, 0.690866f, 0.696506f, 0.702623f, 0.709204f, 0.716236f,
0.723704f, 0.731594f, 0.739889f, 0.748573f, 0.757629f, 0.767040f, 0.776789f, 0.786855f, 0.797221f, 0.807866f, 0.818771f, 0.829917f,
0.841281f, 0.852844f, 0.864585f, 0.876428f, 0.888404f, 0.900855f, 0.913700f, 0.926441f, 0.938390f, 0.948920f, 0.957611f, 0.964301f,
0.969067f, 0.972148f, 0.973880f, 0.974618f, 0.974693f, 0.974380f, 0.973887f, 0.973356f, 0.972872f, 0.972477f, 0.972184f, 0.971985f,
0.971865f, 0.971803f, 0.971781f, 0.971784f, 0.971798f, 0.971818f, 0.971838f, 0.971856f, 0.971869f, 0.971878f, 0.971884f, 0.971887f,
0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f,
0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f,
0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f,
0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971820f, 0.971819f, 0.972130f,
0.972639f, 0.972912f, 0.972401f, 0.970633f, 0.967318f, 0.962382f, 0.955939f, 0.948226f, 0.939549f, 0.930223f, 0.920532f, 0.910715f,
0.900950f, 0.891364f, 0.882034f, 0.873006f, 0.864301f, 0.855925f, 0.847876f, 0.840150f, 0.832745f, 0.825659f, 0.818893f, 0.812453f,
0.806344f, 0.800573f, 0.795148f, 0.790077f, 0.785368f, 0.781027f, 0.777062f, 0.773477f, 0.770278f, 0.767469f, 0.765054f, 0.763033f,
0.761410f, 0.760185f, 0.759358f, 0.758930f, 0.758898f, 0.759262f, 0.760018f, 0.761163f, 0.762694f, 0.764606f, 0.766894f, 0.769553f,
0.772575f, 0.775954f, 0.779683f, 0.783753f, 0.788156f, 0.792882f, 0.797922f, 0.803265f, 0.808901f, 0.814819f, 0.821007f, 0.827452f,
0.834143f, 0.841067f, 0.848211f, 0.855560f, 0.863102f, 0.870823f, 0.878707f, 0.886742f, 0.894911f, 0.903186f, 0.911494f, 0.920129f,
0.929110f, 0.938127f, 0.946697f, 0.954350f, 0.960751f, 0.965748f, 0.969364f, 0.971750f, 0.973133f, 0.973767f, 0.973891f, 0.973707f,
0.973372f, 0.972995f, 0.972643f, 0.972351f, 0.972130f, 0.971978f, 0.971883f, 0.971833f, 0.971813f, 0.971813f, 0.971823f, 0.971838f,
0.971852f, 0.971864f, 0.971874f, 0.971880f, 0.971884f, 0.971886f, 0.971886f, 0.971886f, 0.971886f, 0.971886f, 0.971886f, 0.971886f,
0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f,
0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f,
0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971887f,
0.971887f, 0.971887f, 0.971887f, 0.971887f, 0.971865f, 0.971814f, 0.971964f, 0.972313f, 0.972600f, 0.972441f, 0.971476f, 0.969464f,
0.966314f, 0.962077f, 0.956902f, 0.950998f, 0.944588f, 0.937881f, 0.931053f, 0.924241f, 0.917541f, 0.911018f, 0.904707f, 0.898626f,
0.892781f, 0.887172f, 0.881797f, 0.876651f, 0.871735f, 0.867048f, 0.862592f, 0.858372f, 0.854392f, 0.850656f, 0.847171f, 0.843941f,
0.840972f, 0.838268f, 0.835832f, 0.833668f, 0.831780f, 0.830168f, 0.828834f, 0.827780f, 0.827006f, 0.826512f, 0.826298f, 0.826362f,
0.826703f, 0.827320f, 0.828210f, 0.829370f, 0.830797f, 0.832487f, 0.834436f, 0.836639f, 0.839092f, 0.841788f, 0.844723f, 0.847890f,
0.851281f, 0.854892f, 0.858713f, 0.862737f, 0.866957f, 0.871364f, 0.875950f, 0.880706f, 0.885622f, 0.890690f, 0.895900f, 0.901242f,
0.906706f, 0.912283f, 0.917962f, 0.923723f, 0.929512f, 0.935537f, 0.941816f, 0.948131f, 0.954142f, 0.959517f, 0.964019f, 0.967537f,
0.970086f, 0.971771f, 0.972751f, 0.973202f, 0.973293f, 0.973166f, 0.972932f, 0.972668f, 0.972420f, 0.972215f, 0.972059f, 0.971952f,
0.971885f, 0.971850f, 0.971835f, 0.971834f, 0.971841f, 0.971849f, 0.971858f, 0.971866f, 0.971872f, 0.971877f, 0.971880f, 0.971880f,
0.971881f, 0.971881f, 0.971882f, 0.971882f, 0.971883f, 0.971883f, 0.971884f, 0.971884f, 0.971884f, 0.971885f, 0.971885f, 0.971885f,
0.971886f, 0.971886f, 0.971886f, 0.971886f, 0.971886f, 0.971886f, 0.971886f, 0.971886f, 0.971886f, 0.971887f, 0.971887f, 0.971735f,
0.971587f, 0.972392f, 0.974077f, 0.975431f, 0.974630f, 0.969830f, 0.959587f, 0.943042f, 0.919922f, 0.890429f, 0.855078f, 0.814539f,
0.769514f, 0.720648f, 0.668486f, 0.613461f, 0.555895f, 0.496024f, 0.434017f, 0.370000f, 0.304076f, 0.236337f, 0.166878f, 0.095795f,
0.023197f, -0.050801f, -0.126077f, -0.202499f, -0.279934f, -0.357771f, -0.436697f, -0.518626f, -0.602685f, -0.685421f, -0.762390f, -0.829662f,
-0.884726f, -0.926752f, -0.956381f, -0.975289f, -0.985685f, -0.989884f, -0.990000f, -0.987771f, -0.984497f, -0.981055f, -0.977965f, -0.975474f,
-0.973641f, -0.972414f, -0.971681f, -0.971315f, -0.971197f, -0.971229f, -0.971337f, -0.971471f, -0.971600f, -0.971708f, -0.971791f, -0.971847f,
-0.971883f, -0.971902f, -0.971909f, -0.971911f, -0.971907f, -0.971905f, -0.971902f, -0.971900f, -0.971899f, -0.971897f, -0.971896f, -0.971895f,
-0.971894f, -0.971893f, -0.971892f, -0.971891f, -0.971891f, -0.971890f, -0.971890f, -0.971889f, -0.971889f, -0.971889f, -0.971889f, -0.971888f,
-0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f,
-0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971253f, -0.971634f, -0.974195f,
-0.977588f, -0.978639f, -0.973744f, -0.960007f, -0.935841f, -0.901049f, -0.856579f, -0.804122f, -0.745708f, -0.683366f, -0.618902f, -0.553781f,
-0.489094f, -0.425589f, -0.363729f, -0.303767f, -0.245815f, -0.189902f, -0.136015f, -0.084134f, -0.034245f, 0.013650f, 0.059535f, 0.103374f,
0.145122f, 0.184728f, 0.222133f, 0.257284f, 0.290123f, 0.320602f, 0.348675f, 0.374299f, 0.397440f, 0.418068f, 0.436156f, 0.451686f,
0.464641f, 0.475012f, 0.482792f, 0.487981f, 0.490580f, 0.490599f, 0.488048f, 0.482946f, 0.475312f, 0.465171f, 0.452553f, 0.437492f,
0.420025f, 0.400193f, 0.378043f, 0.353623f, 0.326986f, 0.298190f, 0.267295f, 0.234363f, 0.199462f, 0.162662f, 0.124035f, 0.083658f,
0.041609f, -0.002032f, -0.047181f, -0.093752f, -0.141658f, -0.190809f, -0.241114f, -0.292480f, -0.344813f, -0.398016f, -0.451994f, -0.506649f,
-0.561267f, -0.617465f, -0.675933f, -0.735186f, -0.792315f, -0.844189f, -0.888365f, -0.923538f, -0.949569f, -0.967248f, -0.977955f, -0.983316f,
-0.984932f, -0.984199f, -0.982224f, -0.979797f, -0.977431f, -0.975406f, -0.973835f, -0.972722f, -0.972008f, -0.971607f, -0.971430f, -0.971398f,
-0.971449f, -0.971536f, -0.971631f, -0.971718f, -0.971787f, -0.971837f, -0.971871f, -0.971890f, -0.971900f, -0.971903f, -0.971901f, -0.971899f,
-0.971897f, -0.971896f, -0.971895f, -0.971894f, -0.971893f, -0.971892f, -0.971891f, -0.971891f, -0.971890f, -0.971890f, -0.971889f, -0.971889f,
-0.971889f, -0.971889f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971887f, -0.971887f,
-0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f,
-0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971304f, -0.971846f, -0.974012f, -0.976433f, -0.976648f, -0.972119f, -0.960972f, -0.942312f,
-0.916221f, -0.883528f, -0.845522f, -0.803664f, -0.759366f, -0.713855f, -0.668103f, -0.622816f, -0.578469f, -0.535346f, -0.493594f, -0.453273f,
-0.414392f, -0.376937f, -0.340895f, -0.306255f, -0.273022f, -0.241210f, -0.210847f, -0.181964f, -0.154601f, -0.128795f, -0.104587f, -0.082014f,
-0.061111f, -0.041910f, -0.024437f, -0.008716f, 0.005231f, 0.017389f, 0.027744f, 0.036287f, 0.043011f, 0.047913f, 0.050994f, 0.052256f,
0.051706f, 0.049354f, 0.045211f, 0.039294f, 0.031621f, 0.022214f, 0.011097f, -0.001703f, -0.016155f, -0.032227f, -0.049883f, -0.069085f,
-0.089792f, -0.111961f, -0.135548f, -0.160504f, -0.186779f, -0.214322f, -0.243078f, -0.272993f, -0.304008f, -0.336065f, -0.369103f, -0.403059f,
-0.437871f, -0.473474f, -0.509802f, -0.546789f, -0.584368f, -0.622469f, -0.660895f, -0.699573f, -0.739689f, -0.781131f, -0.822367f, -0.861201f,
-0.895574f, -0.924074f, -0.946126f, -0.961921f, -0.972213f, -0.978065f, -0.980631f, -0.980988f, -0.980038f, -0.978467f, -0.976747f, -0.975167f,
-0.973870f, -0.972900f, -0.972239f, -0.971835f, -0.971624f, -0.971547f, -0.971552f, -0.971601f, -0.971667f, -0.971732f, -0.971788f, -0.971832f,
-0.971862f, -0.971882f, -0.971893f, -0.971897f, -0.971899f, -0.971897f, -0.971896f, -0.971895f, -0.971894f, -0.971893f, -0.971892f, -0.971891f,
-0.971891f, -0.971890f, -0.971890f, -0.971889f, -0.971889f, -0.971889f, -0.971889f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971888f,
-0.971888f, -0.971888f, -0.971888f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f,
-0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971832f, -0.971508f,
-0.972087f, -0.973691f, -0.975186f, -0.974799f, -0.970814f, -0.962029f, -0.947949f, -0.928734f, -0.905041f, -0.877806f, -0.848057f, -0.816768f,
-0.784768f, -0.752707f, -0.721050f, -0.690104f, -0.660047f, -0.630971f, -0.602909f, -0.575863f, -0.549825f, -0.524782f, -0.500730f, -0.477674f,
-0.455624f, -0.434601f, -0.414627f, -0.395730f, -0.377937f, -0.361275f, -0.345770f, -0.331446f, -0.318324f, -0.306422f, -0.295758f, -0.286343f,
-0.278190f, -0.271306f, -0.265698f, -0.261369f, -0.258321f, -0.256554f, -0.256063f, -0.256845f, -0.258891f, -0.262193f, -0.266738f, -0.272513f,
-0.279502f, -0.287688f, -0.297050f, -0.307566f, -0.319214f, -0.331967f, -0.345798f, -0.360678f, -0.376576f, -0.393461f, -0.411297f, -0.430049f,
-0.449681f, -0.470154f, -0.491429f, -0.513465f, -0.536219f, -0.559650f, -0.583713f, -0.608364f, -0.633556f, -0.659243f, -0.685379f, -0.711916f,
-0.738805f, -0.765740f, -0.793339f, -0.822049f, -0.851274f, -0.879652f, -0.905634f, -0.927960f, -0.945907f, -0.959336f, -0.968580f, -0.974288f,
-0.977252f, -0.978267f, -0.978037f, -0.977127f, -0.975949f, -0.974772f, -0.973747f, -0.972942f, -0.972364f, -0.971987f, -0.971771f, -0.971670f,
-0.971646f, -0.971667f, -0.971708f, -0.971755f, -0.971798f, -0.971833f, -0.971860f, -0.971877f, -0.971887f, -0.971893f, -0.971895f, -0.971894f,
-0.971893f, -0.971892f, -0.971891f, -0.971891f, -0.971890f, -0.971890f, -0.971889f, -0.971889f, -0.971889f, -0.971889f, -0.971888f, -0.971888f,
-0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971888f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f,
-0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f,
-0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971887f, -0.971808f, -0.971661f, -0.972176f, -0.973313f, -0.974208f, -0.973616f, -0.970376f,
-0.963713f, -0.953341f, -0.939425f, -0.922455f, -0.903099f, -0.882076f, -0.860057f, -0.837610f, -0.815172f, -0.793054f, -0.771460f, -0.750508f,
-0.730254f, -0.710719f, -0.691903f, -0.673798f, -0.656399f, -0.639701f, -0.623709f, -0.608430f, -0.593879f, -0.580072f, -0.567029f, -0.554767f,
};


#define screetch_count 1200

SGFLT screetch_array[screetch_count]  = {
0.036163f, 0.020458f, -0.040576f, -0.093457f, -0.097722f, -0.038821f, 0.075869f, 0.226591f, 0.390327f, 0.541582f, 0.681766f, 0.811981f,
0.915678f, 0.967888f, 0.947129f, 0.836786f, 0.642517f, 0.388699f, 0.108142f, -0.167532f, -0.414027f, -0.616768f, -0.770477f, -0.877124f,
-0.943332f, -0.977921f, -0.990000f, -0.987717f, -0.977608f, -0.964420f, -0.951245f, -0.939819f, -0.930880f, -0.924502f, -0.920382f, -0.918047f,
-0.916996f, -0.916780f, -0.916873f, -0.917140f, -0.918675f, -0.921212f, -0.923082f, -0.922026f, -0.916034f, -0.903851f, -0.885134f, -0.860346f,
-0.830511f, -0.796939f, -0.760986f, -0.723879f, -0.686623f, -0.649962f, -0.614393f, -0.580201f, -0.547513f, -0.516344f, -0.486641f, -0.458316f,
-0.431272f, -0.405414f, -0.380659f, -0.356939f, -0.334196f, -0.312388f, -0.291478f, -0.271438f, -0.252242f, -0.233867f, -0.216291f, -0.199492f,
-0.183449f, -0.168139f, -0.153542f, -0.139634f, -0.126394f, -0.113800f, -0.101832f, -0.090467f, -0.079686f, -0.069469f, -0.059794f, -0.050645f,
-0.042001f, -0.033844f, -0.026156f, -0.018921f, -0.012121f, -0.005739f, 0.000241f, 0.005835f, 0.011058f, 0.015924f, 0.020450f, 0.024648f,
0.028533f, 0.032118f, 0.035416f, 0.038440f, 0.041203f, 0.043716f, 0.045991f, 0.048040f, 0.049873f, 0.051500f, 0.052933f, 0.054182f,
0.055255f, 0.056162f, 0.056912f, 0.057514f, 0.057976f, 0.058306f, 0.058513f, 0.058603f, 0.058584f, 0.058463f, 0.058246f, 0.057941f,
0.057553f, 0.057088f, 0.056551f, 0.055950f, 0.055287f, 0.054570f, 0.053801f, 0.052986f, 0.052130f, 0.051236f, 0.050308f, 0.049350f,
0.048366f, 0.047358f, 0.046329f, 0.045286f, 0.044230f, 0.043164f, 0.042090f, 0.041010f, 0.039925f, 0.038838f, 0.037750f, 0.036664f,
0.035580f, 0.034502f, 0.033430f, 0.032367f, 0.031314f, 0.030272f, 0.029242f, 0.028226f, 0.027225f, 0.026239f, 0.025269f, 0.024315f,
0.023379f, 0.022461f, 0.021561f, 0.020680f, 0.019818f, 0.018975f, 0.018152f, 0.017348f, 0.016565f, 0.015801f, 0.015058f, 0.014335f,
0.013632f, 0.012949f, 0.012287f, 0.011644f, 0.011021f, 0.010418f, 0.009835f, 0.009271f, 0.008726f, 0.008200f, 0.007693f, 0.007203f,
0.006732f, 0.006279f, 0.005843f, 0.005424f, 0.005025f, 0.004632f, 0.004252f, 0.003897f, 0.003573f, 0.003280f, 0.003010f, 0.002756f,
0.002510f, 0.002267f, 0.002024f, 0.001782f, 0.001542f, 0.001307f, 0.001080f, 0.000863f, 0.000657f, 0.000463f, 0.000283f, 0.000115f,
-0.000041f, -0.000185f, -0.000318f, -0.000440f, -0.000553f, -0.000658f, -0.000754f, -0.000842f, -0.000923f, -0.000998f, -0.001065f, -0.001127f,
-0.001182f, -0.001232f, -0.001277f, -0.001317f, -0.001352f, -0.001382f, -0.001408f, -0.001430f, -0.001448f, -0.001462f, -0.001473f, -0.001480f,
-0.001485f, -0.001487f, -0.001484f, -0.001480f, -0.001476f, -0.001472f, -0.001468f, -0.001466f, -0.001462f, -0.001453f, -0.001440f, -0.001422f,
-0.001401f, -0.001375f, -0.001352f, -0.001328f, -0.001298f, -0.001263f, -0.001223f, -0.001181f, -0.001141f, -0.001104f, -0.001073f, -0.001047f,
-0.001027f, -0.001010f, -0.000997f, -0.000985f, -0.000974f, -0.000963f, -0.000951f, -0.000939f, -0.000925f, -0.000910f, -0.000895f, -0.000878f,
-0.000861f, -0.000843f, -0.000825f, -0.000807f, -0.000788f, -0.000769f, -0.000750f, -0.000731f, -0.000711f, -0.000692f, -0.000673f, -0.000654f,
-0.000634f, -0.000615f, -0.000596f, -0.000578f, -0.000559f, -0.000541f, -0.000522f, -0.000504f, -0.000487f, -0.000469f, -0.000448f, -0.000440f,
-0.000433f, -0.000416f, -0.000384f, -0.000334f, -0.000276f, -0.000222f, -0.000180f, -0.000153f, -0.000140f, -0.000138f, -0.000145f, -0.000155f,
-0.000165f, -0.000174f, -0.000180f, -0.000184f, -0.000186f, -0.000185f, -0.000184f, -0.000182f, -0.000180f, -0.000178f, -0.000176f, -0.000174f,
-0.000171f, -0.000167f, -0.000161f, -0.000155f, -0.000147f, -0.000141f, -0.000134f, -0.000128f, -0.000123f, -0.000118f, -0.000114f, -0.000110f,
-0.000106f, -0.000102f, -0.000099f, -0.000095f, -0.000091f, -0.000090f, -0.000089f, -0.000087f, -0.000085f, -0.000084f, -0.000082f, -0.000080f,
-0.000078f, -0.000076f, -0.000073f, -0.000071f, -0.000069f, -0.000067f, -0.000063f, -0.000060f, -0.000054f, -0.000047f, -0.000042f, -0.000037f,
-0.000033f, -0.000031f, -0.000031f, -0.000030f, -0.000030f, -0.000030f, -0.000030f, -0.000029f, -0.000029f, -0.000029f, -0.000029f, -0.000029f,
-0.000029f, -0.000029f, -0.000029f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f, -0.000028f,
-0.000028f, 0.012088f, -0.036163f, -0.020458f, 0.040576f, 0.093457f, 0.097722f, 0.038821f, -0.075869f, -0.226591f, -0.390327f, -0.541582f,
-0.681766f, -0.811981f, -0.915678f, -0.967888f, -0.947129f, -0.836786f, -0.642517f, -0.388699f, -0.108142f, 0.167532f, 0.414027f, 0.616768f,
0.770477f, 0.877124f, 0.943332f, 0.977921f, 0.990000f, 0.987717f, 0.977608f, 0.964420f, 0.951245f, 0.939819f, 0.930880f, 0.924502f,
0.920382f, 0.918047f, 0.916996f, 0.916780f, 0.916873f, 0.917140f, 0.918675f, 0.921212f, 0.923082f, 0.922026f, 0.916034f, 0.903851f,
0.885134f, 0.860346f, 0.830511f, 0.796939f, 0.760986f, 0.723879f, 0.686623f, 0.649962f, 0.614393f, 0.580201f, 0.547513f, 0.516344f,
0.486641f, 0.458316f, 0.431272f, 0.405414f, 0.380659f, 0.356939f, 0.334196f, 0.312388f, 0.291478f, 0.271438f, 0.252242f, 0.233867f,
0.216291f, 0.199492f, 0.183449f, 0.168139f, 0.153542f, 0.139634f, 0.126394f, 0.113800f, 0.101832f, 0.090467f, 0.079686f, 0.069469f,
0.059794f, 0.050645f, 0.042001f, 0.033844f, 0.026156f, 0.018921f, 0.012121f, 0.005739f, -0.000241f, -0.005835f, -0.011058f, -0.015924f,
-0.020450f, -0.024648f, -0.028533f, -0.032118f, -0.035416f, -0.038440f, -0.041203f, -0.043716f, -0.045991f, -0.048040f, -0.049873f, -0.051500f,
-0.052933f, -0.054182f, -0.055255f, -0.056162f, -0.056912f, -0.057514f, -0.057976f, -0.058306f, -0.058513f, -0.058603f, -0.058584f, -0.058463f,
-0.058246f, -0.057941f, -0.057553f, -0.057088f, -0.056551f, -0.055950f, -0.055287f, -0.054570f, -0.053801f, -0.052986f, -0.052130f, -0.051236f,
-0.050308f, -0.049350f, -0.048366f, -0.047358f, -0.046329f, -0.045286f, -0.044230f, -0.043164f, -0.042090f, -0.041010f, -0.039925f, -0.038838f,
-0.037750f, -0.036664f, -0.035580f, -0.034502f, -0.033430f, -0.032367f, -0.031314f, -0.030272f, -0.029242f, -0.028226f, -0.027225f, -0.026239f,
-0.025269f, -0.024315f, -0.023379f, -0.022461f, -0.021561f, -0.020680f, -0.019818f, -0.018975f, -0.018152f, -0.017348f, -0.016565f, -0.015801f,
-0.015058f, -0.014335f, -0.013632f, -0.012949f, -0.012287f, -0.011644f, -0.011021f, -0.010418f, -0.009835f, -0.009271f, -0.008726f, -0.008200f,
-0.007693f, -0.007203f, -0.006732f, -0.006279f, -0.005843f, -0.005424f, -0.005025f, -0.004632f, -0.004252f, -0.003897f, -0.003573f, -0.003280f,
-0.003010f, -0.002756f, -0.002510f, -0.002267f, -0.002024f, -0.001782f, -0.001542f, -0.001307f, -0.001080f, -0.000863f, -0.000657f, -0.000463f,
-0.000283f, -0.000115f, 0.000041f, 0.000185f, 0.000318f, 0.000440f, 0.000553f, 0.000658f, 0.000754f, 0.000842f, 0.000923f, 0.000998f,
0.001065f, 0.001127f, 0.001182f, 0.001232f, 0.001277f, 0.001317f, 0.001352f, 0.001382f, 0.001408f, 0.001430f, 0.001448f, 0.001462f,
0.001473f, 0.001480f, 0.001485f, 0.001487f, 0.001484f, 0.001480f, 0.001476f, 0.001472f, 0.001468f, 0.001466f, 0.001462f, 0.001453f,
0.001440f, 0.001422f, 0.001401f, 0.001375f, 0.001352f, 0.001328f, 0.001298f, 0.001263f, 0.001223f, 0.001181f, 0.001141f, 0.001104f,
0.001073f, 0.001047f, 0.001027f, 0.001010f, 0.000997f, 0.000985f, 0.000974f, 0.000963f, 0.000951f, 0.000939f, 0.000925f, 0.000910f,
0.000895f, 0.000878f, 0.000861f, 0.000843f, 0.000825f, 0.000807f, 0.000788f, 0.000769f, 0.000750f, 0.000731f, 0.000711f, 0.000692f,
0.000673f, 0.000654f, 0.000634f, 0.000615f, 0.000596f, 0.000578f, 0.000559f, 0.000541f, 0.000522f, 0.000504f, 0.000487f, 0.000469f,
0.000448f, 0.000440f, 0.000433f, 0.000416f, 0.000384f, 0.000334f, 0.000276f, 0.000222f, 0.000180f, 0.000153f, 0.000140f, 0.000138f,
0.000145f, 0.000155f, 0.000165f, 0.000174f, 0.000180f, 0.000184f, 0.000186f, 0.000185f, 0.000184f, 0.000182f, 0.000180f, 0.000178f,
0.000176f, 0.000174f, 0.000171f, 0.000167f, 0.000161f, 0.000155f, 0.000147f, 0.000141f, 0.000134f, 0.000128f, 0.000123f, 0.000118f,
0.000114f, 0.000110f, 0.000106f, 0.000102f, 0.000099f, 0.000095f, 0.000091f, 0.000090f, 0.000089f, 0.000087f, 0.000085f, 0.000084f,
0.000082f, 0.000080f, 0.000078f, 0.000076f, 0.000073f, 0.000071f, 0.000069f, 0.000067f, 0.000063f, 0.000060f, 0.000054f, 0.000047f,
0.000042f, 0.000037f, 0.000033f, 0.000031f, 0.000031f, 0.000030f, 0.000030f, 0.000030f, 0.000030f, 0.000029f, 0.000029f, 0.000029f,
0.000029f, 0.000029f, 0.000029f, 0.000029f, 0.000029f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f, 0.000028f,
};


#define thick_bass_count 1200

SGFLT thick_bass_array[thick_bass_count]  = {
0.450352f, 0.465617f, 0.481267f, 0.497045f, 0.512583f, 0.527435f, 0.541115f, 0.553129f, 0.562994f, 0.570267f, 0.574553f, 0.575529f,
0.572944f, 0.566629f, 0.556501f, 0.542559f, 0.524885f, 0.503639f, 0.479051f, 0.451416f, 0.421083f, 0.388446f, 0.353938f, 0.318015f,
0.281151f, 0.243829f, 0.206526f, 0.169711f, 0.133836f, 0.099327f, 0.066578f, 0.035949f, 0.007760f, -0.017712f, -0.040235f, -0.059624f,
-0.075740f, -0.088490f, -0.097827f, -0.103747f, -0.106287f, -0.105523f, -0.101565f, -0.094557f, -0.084668f, -0.072094f, -0.057048f, -0.039762f,
-0.020477f, 0.000554f, 0.023077f, 0.046834f, 0.071572f, 0.097040f, 0.122999f, 0.149216f, 0.175472f, 0.201565f, 0.227304f, 0.252517f,
0.277051f, 0.300770f, 0.323554f, 0.345306f, 0.365945f, 0.385406f, 0.403644f, 0.420629f, 0.436348f, 0.450799f, 0.463996f, 0.475965f,
0.486740f, 0.496368f, 0.504900f, 0.512397f, 0.518923f, 0.524549f, 0.529345f, 0.533386f, 0.536748f, 0.539503f, 0.541727f, 0.543490f,
0.544862f, 0.545909f, 0.546692f, 0.547272f, 0.547702f, 0.548030f, 0.548303f, 0.548561f, 0.548838f, 0.549165f, 0.549568f, 0.550069f,
0.550686f, 0.551431f, 0.552314f, 0.553343f, 0.554519f, 0.555844f, 0.557314f, 0.558927f, 0.560676f, 0.562553f, 0.564550f, 0.566656f,
0.568862f, 0.571156f, 0.573527f, 0.575964f, 0.578456f, 0.580993f, 0.583565f, 0.586162f, 0.588776f, 0.591398f, 0.594023f, 0.596644f,
0.599255f, 0.601852f, 0.604433f, 0.606994f, 0.609535f, 0.612053f, 0.614549f, 0.617024f, 0.619478f, 0.621913f, 0.624331f, 0.626734f,
0.629124f, 0.631504f, 0.633877f, 0.636246f, 0.638612f, 0.640979f, 0.643347f, 0.645720f, 0.648098f, 0.650482f, 0.652873f, 0.655272f,
0.657677f, 0.660087f, 0.662502f, 0.664919f, 0.667336f, 0.669749f, 0.672156f, 0.674552f, 0.676932f, 0.679292f, 0.681626f, 0.683930f,
0.686196f, 0.688419f, 0.690592f, 0.692710f, 0.694765f, 0.696751f, 0.698661f, 0.700489f, 0.702230f, 0.703876f, 0.705424f, 0.706866f,
0.708200f, 0.709419f, 0.710522f, 0.711503f, 0.712361f, 0.713094f, 0.713699f, 0.714176f, 0.714525f, 0.714746f, 0.714839f, 0.714807f,
0.714651f, 0.714374f, 0.713978f, 0.713468f, 0.712848f, 0.712121f, 0.711292f, 0.710366f, 0.709349f, 0.708246f, 0.707062f, 0.705804f,
0.704477f, 0.703087f, 0.701641f, 0.700145f, 0.698604f, 0.697024f, 0.695413f, 0.693775f, 0.692117f, 0.690445f, 0.688765f, 0.687081f,
0.685401f, 0.683730f, 0.682073f, 0.680437f, 0.678827f, 0.677248f, 0.675706f, 0.674208f, 0.672758f, 0.671363f, 0.670029f, 0.668760f,
0.667564f, 0.666445f, 0.665409f, 0.664463f, 0.663611f, 0.662859f, 0.662213f, 0.661677f, 0.661256f, 0.660955f, 0.660778f, 0.660729f,
0.660813f, 0.661032f, 0.661389f, 0.661887f, 0.662529f, 0.663315f, 0.664249f, 0.665329f, 0.666557f, 0.667932f, 0.669453f, 0.671118f,
0.672924f, 0.674869f, 0.676948f, 0.679156f, 0.681487f, 0.683933f, 0.686486f, 0.689138f, 0.691877f, 0.694693f, 0.697572f, 0.700501f,
0.703465f, 0.706447f, 0.709432f, 0.712400f, 0.715332f, 0.718209f, 0.721011f, 0.723715f, 0.726299f, 0.728741f, 0.731018f, 0.733106f,
0.734982f, 0.736623f, 0.738005f, 0.739105f, 0.739899f, 0.740367f, 0.740485f, 0.740233f, 0.739590f, 0.738539f, 0.737060f, 0.735136f,
0.732753f, 0.729897f, 0.726554f, 0.722713f, 0.718366f, 0.713503f, 0.708120f, 0.702211f, 0.695774f, 0.688808f, 0.681313f, 0.673292f,
0.664748f, 0.655689f, 0.646120f, 0.636052f, 0.625494f, 0.614459f, 0.602960f, 0.591012f, 0.578632f, 0.565837f, 0.552646f, 0.539079f,
0.525157f, 0.510901f, 0.496336f, 0.481485f, 0.466372f, 0.451023f, 0.435464f, 0.419721f, 0.403822f, 0.387794f, 0.371665f, 0.355462f,
0.339214f, 0.322949f, 0.306694f, 0.290479f, 0.274331f, 0.258277f, 0.242344f, 0.226559f, 0.210948f, 0.195538f, 0.180351f, 0.165413f,
0.150747f, 0.136376f, 0.122320f, 0.108600f, 0.095236f, 0.082246f, 0.069647f, 0.057455f, 0.045686f, 0.034353f, 0.023469f, 0.013045f,
0.003091f, -0.006383f, -0.015370f, -0.023864f, -0.031859f, -0.039351f, -0.046336f, -0.052814f, -0.058782f, -0.064242f, -0.069194f, -0.073641f,
-0.077586f, -0.081033f, -0.083987f, -0.086456f, -0.088444f, -0.089961f, -0.091014f, -0.091613f, -0.091768f, -0.091489f, -0.090788f, -0.089676f,
-0.088167f, -0.086273f, -0.084008f, -0.081385f, -0.078420f, -0.075127f, -0.071521f, -0.067617f, -0.063432f, -0.058982f, -0.054282f, -0.049350f,
-0.044200f, -0.038851f, -0.033317f, -0.027616f, -0.021764f, -0.015776f, -0.009669f, -0.003458f, 0.002843f, 0.009217f, 0.015652f, 0.022132f,
0.028645f, 0.035177f, 0.041716f, 0.048250f, 0.054768f, 0.061260f, 0.067714f, 0.074123f, 0.080476f, 0.086766f, 0.092985f, 0.099126f,
0.105182f, 0.111148f, 0.117017f, 0.122786f, 0.128449f, 0.134002f, 0.139443f, 0.144767f, 0.149972f, 0.155056f, 0.160016f, 0.164850f,
0.169558f, 0.174137f, 0.178587f, 0.182907f, 0.187096f, 0.191155f, 0.195082f, 0.198879f, 0.202546f, 0.206083f, 0.209492f, 0.212772f,
0.215926f, 0.218955f, 0.221862f, 0.224647f, 0.227313f, 0.229864f, 0.232302f, 0.234629f, 0.236851f, 0.238969f, 0.240989f, 0.242914f,
0.244749f, 0.246499f, 0.248168f, 0.249761f, 0.251283f, 0.252741f, 0.254137f, 0.255479f, 0.256770f, 0.258015f, 0.259220f, 0.260388f,
0.261524f, 0.262632f, 0.263714f, 0.264774f, 0.265814f, 0.266837f, 0.267843f, 0.268835f, 0.269812f, 0.270775f, 0.271723f, 0.272656f,
0.273572f, 0.274470f, 0.275347f, 0.276202f, 0.277031f, 0.277832f, 0.278602f, 0.279338f, 0.280036f, 0.280693f, 0.281307f, 0.281873f,
0.282390f, 0.282854f, 0.283263f, 0.283615f, 0.283907f, 0.284139f, 0.284309f, 0.284416f, 0.284461f, 0.284443f, 0.284362f, 0.284220f,
0.284017f, 0.283756f, 0.283437f, 0.283065f, 0.282640f, 0.282166f, 0.281646f, 0.281083f, 0.280480f, 0.279841f, 0.279170f, 0.278471f,
0.277746f, 0.277000f, 0.276238f, 0.275462f, 0.274676f, 0.273884f, 0.273090f, 0.272297f, 0.271508f, 0.270726f, 0.269954f, 0.269195f,
0.268451f, 0.267725f, 0.267017f, 0.266330f, 0.265664f, 0.265022f, 0.264403f, 0.263808f, 0.263238f, 0.262691f, 0.262168f, 0.261669f,
0.261193f, 0.260738f, 0.260305f, 0.259891f, 0.259496f, 0.259118f, 0.258757f, 0.258410f, 0.258077f, 0.257757f, 0.257447f, 0.257148f,
0.256858f, 0.256576f, 0.256302f, 0.256035f, 0.255774f, 0.255519f, 0.255269f, 0.255026f, 0.254788f, 0.254556f, 0.254329f, 0.254109f,
0.253895f, 0.253686f, 0.253485f, 0.253289f, 0.253101f, 0.252919f, 0.252743f, 0.252574f, 0.252411f, 0.252254f, 0.252101f, 0.251953f,
0.251809f, 0.251667f, 0.251527f, 0.251386f, 0.251245f, 0.251100f, 0.250951f, 0.250795f, 0.250630f, 0.250455f, 0.250266f, 0.250063f,
0.249841f, 0.249599f, 0.249335f, 0.249045f, 0.248728f, 0.248380f, 0.248000f, 0.247586f, 0.247134f, 0.246644f, 0.246114f, 0.245542f,
0.244927f, 0.244269f, 0.243566f, 0.242820f, 0.242030f, 0.241198f, 0.240324f, 0.239411f, 0.238460f, 0.237475f, 0.236459f, 0.235416f,
0.234350f, 0.233266f, 0.232169f, 0.231065f, 0.229960f, 0.228860f, 0.227772f, 0.226702f, 0.225658f, 0.224645f, 0.223672f, 0.222744f,
0.221868f, 0.221051f, 0.220298f, 0.219615f, 0.219006f, 0.218476f, 0.218030f, 0.217669f, 0.217397f, 0.217215f, 0.217124f, 0.217125f,
0.217216f, 0.217396f, 0.217664f, 0.218016f, 0.218450f, 0.218960f, 0.219543f, 0.220193f, 0.220903f, 0.221669f, 0.222482f, 0.223337f,
0.224226f, 0.225142f, 0.226078f, 0.227025f, 0.227977f, 0.228926f, 0.229864f, 0.230783f, 0.231676f, 0.232536f, 0.233353f, 0.234122f,
0.234833f, 0.235478f, 0.236050f, 0.236541f, 0.236941f, 0.237241f, 0.237434f, 0.237508f, 0.237455f, 0.237265f, 0.236926f, 0.236429f,
0.235763f, 0.234916f, 0.233878f, 0.232635f, 0.231178f, 0.229493f, 0.227570f, 0.225397f, 0.222961f, 0.220252f, 0.217259f, 0.213972f,
0.210379f, 0.206472f, 0.202242f, 0.197680f, 0.192779f, 0.187533f, 0.181936f, 0.175984f, 0.169674f, 0.163002f, 0.155968f, 0.148572f,
0.140815f, 0.132699f, 0.124228f, 0.115407f, 0.106242f, 0.096739f, 0.086906f, 0.076754f, 0.066292f, 0.055532f, 0.044486f, 0.033168f,
0.021590f, 0.009769f, -0.002280f, -0.014542f, -0.026998f, -0.039633f, -0.052428f, -0.065364f, -0.078424f, -0.091589f, -0.104841f, -0.118159f,
-0.131526f, -0.144922f, -0.158329f, -0.171728f, -0.185102f, -0.198431f, -0.211699f, -0.224889f, -0.237982f, -0.250964f, -0.263818f, -0.276529f,
-0.289082f, -0.301463f, -0.313659f, -0.325656f, -0.337443f, -0.349007f, -0.360337f, -0.371423f, -0.382256f, -0.392825f, -0.403122f, -0.413139f,
-0.422868f, -0.432303f, -0.441437f, -0.450264f, -0.458778f, -0.466976f, -0.474852f, -0.482403f, -0.489625f, -0.496515f, -0.503071f, -0.509290f,
-0.515172f, -0.520714f, -0.525915f, -0.530776f, -0.535296f, -0.539475f, -0.543314f, -0.546814f, -0.549975f, -0.552800f, -0.555290f, -0.557447f,
-0.559275f, -0.560774f, -0.561949f, -0.562803f, -0.563338f, -0.563560f, -0.563471f, -0.563075f, -0.562378f, -0.561384f, -0.560097f, -0.558522f,
-0.556665f, -0.554530f, -0.552124f, -0.549451f, -0.546517f, -0.543329f, -0.539892f, -0.536213f, -0.532297f, -0.528152f, -0.523783f, -0.519199f,
-0.514406f, -0.509410f, -0.504221f, -0.498844f, -0.493289f, -0.487563f, -0.481675f, -0.475633f, -0.469446f, -0.463123f, -0.456674f, -0.450108f,
-0.443434f, -0.436664f, -0.429807f, -0.422873f, -0.415874f, -0.408819f, -0.401721f, -0.394589f, -0.387435f, -0.380270f, -0.373105f, -0.365951f,
-0.358818f, -0.351717f, -0.344660f, -0.337655f, -0.330713f, -0.323844f, -0.317057f, -0.310362f, -0.303766f, -0.297279f, -0.290908f, -0.284662f,
-0.278548f, -0.272574f, -0.266747f, -0.261075f, -0.255565f, -0.250224f, -0.245059f, -0.240080f, -0.235292f, -0.230705f, -0.226328f, -0.222168f,
-0.218237f, -0.214543f, -0.211097f, -0.207910f, -0.204994f, -0.202360f, -0.200020f, -0.197988f, -0.196276f, -0.194898f, -0.193867f, -0.193196f,
-0.192900f, -0.192992f, -0.193486f, -0.194394f, -0.195729f, -0.197504f, -0.199731f, -0.202419f, -0.205580f, -0.209222f, -0.213353f, -0.217980f,
-0.223109f, -0.228744f, -0.234887f, -0.241540f, -0.248703f, -0.256374f, -0.264549f, -0.273224f, -0.282390f, -0.292041f, -0.302165f, -0.312751f,
-0.323786f, -0.335253f, -0.347138f, -0.359421f, -0.372084f, -0.385105f, -0.398463f, -0.412134f, -0.426096f, -0.440321f, -0.454786f, -0.469463f,
-0.484325f, -0.499346f, -0.514497f, -0.529750f, -0.545077f, -0.560451f, -0.575843f, -0.591226f, -0.606573f, -0.621856f, -0.637051f, -0.652130f,
-0.667070f, -0.681847f, -0.696436f, -0.710817f, -0.724968f, -0.738868f, -0.752500f, -0.765844f, -0.778885f, -0.791607f, -0.803996f, -0.816038f,
-0.827721f, -0.839036f, -0.849972f, -0.860520f, -0.870672f, -0.880424f, -0.889768f, -0.898700f, -0.907217f, -0.915315f, -0.922992f, -0.930246f,
-0.937076f, -0.943483f, -0.949466f, -0.955027f, -0.960165f, -0.964883f, -0.969183f, -0.973068f, -0.976540f, -0.979603f, -0.982261f, -0.984519f,
-0.986381f, -0.987854f, -0.988943f, -0.989656f, -0.990000f, -0.989984f, -0.989616f, -0.988907f, -0.987868f, -0.986509f, -0.984845f, -0.982887f,
-0.980650f, -0.978148f, -0.975398f, -0.972415f, -0.969217f, -0.965820f, -0.962244f, -0.958507f, -0.954628f, -0.950627f, -0.946523f, -0.942337f,
-0.938088f, -0.933798f, -0.929486f, -0.925172f, -0.920877f, -0.916619f, -0.912418f, -0.908292f, -0.904260f, -0.900338f, -0.896544f, -0.892892f,
-0.889397f, -0.886074f, -0.882933f, -0.879988f, -0.877248f, -0.874722f, -0.872417f, -0.870340f, -0.868496f, -0.866889f, -0.865520f, -0.864392f,
-0.863502f, -0.862850f, -0.862433f, -0.862246f, -0.862284f, -0.862539f, -0.863004f, -0.863670f, -0.864526f, -0.865561f, -0.866764f, -0.868121f,
-0.869618f, -0.871242f, -0.872977f, -0.874808f, -0.876719f, -0.878694f, -0.880715f, -0.882766f, -0.884831f, -0.886891f, -0.888931f, -0.890932f,
-0.892879f, -0.894755f, -0.896544f, -0.898229f, -0.899796f, -0.901229f, -0.902514f, -0.903637f, -0.904584f, -0.905343f, -0.905902f, -0.906249f,
-0.906374f, -0.906267f, -0.905918f, -0.905319f, -0.904463f, -0.903342f, -0.901950f, -0.900281f, -0.898331f, -0.896094f, -0.893568f, -0.890749f,
-0.887635f, -0.884224f, -0.880515f, -0.876506f, -0.872198f, -0.867591f, -0.862685f, -0.857481f, -0.851981f, -0.846186f, -0.840099f, -0.833722f,
-0.827058f, -0.820110f, -0.812882f, -0.805377f, -0.797600f, -0.789554f, -0.781244f, -0.772677f, -0.763855f, -0.754786f, -0.745475f, -0.735928f,
-0.726151f, -0.716152f, -0.705936f, -0.695512f, -0.684886f, -0.674067f, -0.663063f, -0.651882f, -0.640533f, -0.629025f, -0.617368f, -0.605569f,
-0.593641f, -0.581592f, -0.569433f, -0.557174f, -0.544825f, -0.532399f, -0.519904f, -0.507353f, -0.494756f, -0.482124f, -0.469469f, -0.456800f,
-0.444130f, -0.431468f, -0.418826f, -0.406214f, -0.393643f, -0.381122f, -0.368661f, -0.356271f, -0.343960f, -0.331739f, -0.319615f, -0.307598f,
-0.295695f, -0.283914f, -0.272263f, -0.260750f, -0.249379f, -0.238158f, -0.227093f, -0.216188f, -0.205448f, -0.194878f, -0.184480f, -0.174259f,
-0.164217f, -0.154356f, -0.144677f, -0.135183f, -0.125873f, -0.116749f, -0.107808f, -0.099052f, -0.090478f, -0.082086f, -0.073874f, -0.065838f,
-0.057978f, -0.050289f, -0.042769f, -0.035415f, -0.028223f, -0.021190f, -0.014311f, -0.007582f, -0.001000f, 0.005440f, 0.011742f, 0.017910f,
0.023949f, 0.029862f, 0.035655f, 0.041332f, 0.046897f, 0.052353f, 0.057705f, 0.062958f, 0.068113f, 0.073176f, 0.078150f, 0.083038f,
0.087843f, 0.092568f, 0.097215f, 0.101789f, 0.106289f, 0.110720f, 0.115082f, 0.119378f, 0.123608f, 0.127775f, 0.131879f, 0.135922f,
0.139904f, 0.143827f, 0.147690f, 0.151495f, 0.155242f, 0.158933f, 0.162567f, 0.166145f, 0.169668f, 0.173138f, 0.176554f, 0.179919f,
0.183232f, 0.186496f, 0.189711f, 0.192879f, 0.196002f, 0.199080f, 0.202116f, 0.205112f, 0.208068f, 0.210987f, 0.213871f, 0.216720f,
0.219537f, 0.222324f, 0.225082f, 0.227812f, 0.230517f, 0.233197f, 0.235855f, 0.238491f, 0.241106f, 0.243703f, 0.246283f, 0.248846f,
0.251394f, 0.253929f, 0.256451f, 0.258962f, 0.261464f, 0.263958f, 0.266446f, 0.268929f, 0.271410f, 0.273890f, 0.276371f, 0.278856f,
0.281347f, 0.283846f, 0.286357f, 0.288882f, 0.291423f, 0.293984f, 0.296569f, 0.299179f, 0.301819f, 0.304491f, 0.307200f, 0.309948f,
0.312740f, 0.315577f, 0.318465f, 0.321406f, 0.324404f, 0.327461f, 0.330582f, 0.333769f, 0.337025f, 0.340354f, 0.343758f, 0.347239f,
};


#define rattler_count 1200

SGFLT rattler_array[rattler_count]  = {
-0.825286f, -0.831746f, -0.838099f, -0.844259f, -0.850169f, -0.855791f, -0.861108f, -0.866117f, -0.870823f, -0.875243f, -0.879396f, -0.883308f,
-0.887002f, -0.890507f, -0.893850f, -0.897055f, -0.900146f, -0.903145f, -0.906072f, -0.908943f, -0.911772f, -0.914572f, -0.917352f, -0.920119f,
-0.922879f, -0.925633f, -0.928384f, -0.931131f, -0.933873f, -0.936607f, -0.939329f, -0.942036f, -0.944721f, -0.947379f, -0.950005f, -0.952592f,
-0.955135f, -0.957627f, -0.960062f, -0.962435f, -0.964739f, -0.966969f, -0.969120f, -0.971187f, -0.973165f, -0.975050f, -0.976838f, -0.978525f,
-0.980107f, -0.981582f, -0.982945f, -0.984196f, -0.985330f, -0.986346f, -0.987242f, -0.988016f, -0.988665f, -0.989189f, -0.989586f, -0.989854f,
-0.989993f, -0.990000f, -0.989875f, -0.989617f, -0.989225f, -0.988698f, -0.988035f, -0.987235f, -0.986297f, -0.985221f, -0.984005f, -0.982649f,
-0.981153f, -0.979515f, -0.977736f, -0.975814f, -0.973749f, -0.971540f, -0.969187f, -0.966690f, -0.964048f, -0.961261f, -0.958328f, -0.955249f,
-0.952025f, -0.948654f, -0.945138f, -0.941476f, -0.937667f, -0.933713f, -0.929613f, -0.925367f, -0.920977f, -0.916442f, -0.911762f, -0.906939f,
-0.901974f, -0.896865f, -0.891616f, -0.886226f, -0.880696f, -0.875027f, -0.869221f, -0.863278f, -0.857200f, -0.850989f, -0.844644f, -0.838169f,
-0.831564f, -0.824831f, -0.817972f, -0.810989f, -0.803882f, -0.796655f, -0.789308f, -0.781845f, -0.774266f, -0.766575f, -0.758772f, -0.750861f,
-0.742843f, -0.734722f, -0.726498f, -0.718175f, -0.709754f, -0.701239f, -0.692631f, -0.683934f, -0.675149f, -0.666279f, -0.657327f, -0.648295f,
-0.639185f, -0.630002f, -0.620746f, -0.611420f, -0.602028f, -0.592571f, -0.583053f, -0.573475f, -0.563841f, -0.554154f, -0.544415f, -0.534627f,
-0.524793f, -0.514915f, -0.504996f, -0.495039f, -0.485046f, -0.475020f, -0.464962f, -0.454876f, -0.444764f, -0.434628f, -0.424471f, -0.414296f,
-0.404103f, -0.393897f, -0.383680f, -0.373452f, -0.363218f, -0.352979f, -0.342738f, -0.332496f, -0.322257f, -0.312021f, -0.301792f, -0.291571f,
-0.281361f, -0.271164f, -0.260982f, -0.250816f, -0.240670f, -0.230544f, -0.220441f, -0.210363f, -0.200312f, -0.190290f, -0.180298f, -0.170338f,
-0.160413f, -0.150523f, -0.140671f, -0.130858f, -0.121086f, -0.111357f, -0.101673f, -0.092033f, -0.082442f, -0.072898f, -0.063406f, -0.053964f,
-0.044576f, -0.035242f, -0.025964f, -0.016742f, -0.007579f, 0.001525f, 0.010569f, 0.019551f, 0.028471f, 0.037327f, 0.046119f, 0.054845f,
0.063505f, 0.072097f, 0.080622f, 0.089077f, 0.097463f, 0.105778f, 0.114022f, 0.122195f, 0.130295f, 0.138322f, 0.146276f, 0.154156f,
0.161961f, 0.169691f, 0.177346f, 0.184925f, 0.192428f, 0.199854f, 0.207204f, 0.214477f, 0.221672f, 0.228790f, 0.235831f, 0.242793f,
0.249677f, 0.256484f, 0.263212f, 0.269862f, 0.276434f, 0.282927f, 0.289342f, 0.295679f, 0.301937f, 0.308118f, 0.314221f, 0.320245f,
0.326192f, 0.332061f, 0.337853f, 0.343568f, 0.349206f, 0.354767f, 0.360252f, 0.365661f, 0.370994f, 0.376251f, 0.381433f, 0.386540f,
0.391573f, 0.396532f, 0.401417f, 0.406228f, 0.410967f, 0.415634f, 0.420228f, 0.424751f, 0.429203f, 0.433584f, 0.437895f, 0.442137f,
0.446309f, 0.450413f, 0.454449f, 0.458417f, 0.462318f, 0.466153f, 0.469922f, 0.473626f, 0.477264f, 0.480839f, 0.484350f, 0.487798f,
0.491183f, 0.494507f, 0.497768f, 0.500969f, 0.504110f, 0.507191f, 0.510213f, 0.513176f, 0.516080f, 0.518927f, 0.521717f, 0.524450f,
0.527128f, 0.529749f, 0.532315f, 0.534827f, 0.537284f, 0.539687f, 0.542038f, 0.544335f, 0.546580f, 0.548772f, 0.550914f, 0.553003f,
0.555043f, 0.557032f, 0.558971f, 0.560860f, 0.562700f, 0.564492f, 0.566235f, 0.567930f, 0.569578f, 0.571178f, 0.572732f, 0.574239f,
0.575701f, 0.577116f, 0.578487f, 0.579813f, 0.581094f, 0.582332f, 0.583526f, 0.584677f, 0.585785f, 0.586851f, 0.587875f, 0.588857f,
0.589798f, 0.590698f, 0.591559f, 0.592379f, 0.593160f, 0.593901f, 0.594605f, 0.595269f, 0.595896f, 0.596486f, 0.597039f, 0.597555f,
0.598035f, 0.598479f, 0.598888f, 0.599262f, 0.599601f, 0.599906f, 0.600178f, 0.600416f, 0.600622f, 0.600795f, 0.600936f, 0.601045f,
0.601123f, 0.601171f, 0.601188f, 0.601176f, 0.601134f, 0.601063f, 0.600963f, 0.600836f, 0.600681f, 0.600498f, 0.600289f, 0.600054f,
0.599793f, 0.599507f, 0.599196f, 0.598860f, 0.598501f, 0.598119f, 0.597713f, 0.597286f, 0.596837f, 0.596366f, 0.595875f, 0.595363f,
0.594832f, 0.594282f, 0.593713f, 0.593127f, 0.592522f, 0.591901f, 0.591263f, 0.590610f, 0.589941f, 0.589257f, 0.588559f, 0.587847f,
0.587122f, 0.586384f, 0.585634f, 0.584873f, 0.584100f, 0.583317f, 0.582524f, 0.581721f, 0.580909f, 0.580088f, 0.579260f, 0.578424f,
0.577581f, 0.576732f, 0.575877f, 0.575016f, 0.574151f, 0.573281f, 0.572408f, 0.571531f, 0.570652f, 0.569771f, 0.568888f, 0.568005f,
0.567121f, 0.566238f, 0.565356f, 0.564475f, 0.563596f, 0.562720f, 0.561847f, 0.560979f, 0.560114f, 0.559255f, 0.558401f, 0.557553f,
0.556712f, 0.555878f, 0.555052f, 0.554234f, 0.553424f, 0.552624f, 0.551833f, 0.551052f, 0.550282f, 0.549522f, 0.548773f, 0.548036f,
0.547310f, 0.546596f, 0.545895f, 0.545206f, 0.544530f, 0.543867f, 0.543216f, 0.542580f, 0.541956f, 0.541347f, 0.540751f, 0.540168f,
0.539600f, 0.539046f, 0.538506f, 0.537981f, 0.537469f, 0.536972f, 0.536489f, 0.536021f, 0.535567f, 0.535128f, 0.534703f, 0.534293f,
0.533897f, 0.533516f, 0.533149f, 0.532797f, 0.532460f, 0.532137f, 0.531828f, 0.531534f, 0.531255f, 0.530990f, 0.530740f, 0.530505f,
0.530283f, 0.530077f, 0.529884f, 0.529706f, 0.529543f, 0.529393f, 0.529258f, 0.529137f, 0.529031f, 0.528938f, 0.528860f, 0.528795f,
0.528745f, 0.528708f, 0.528685f, 0.528676f, 0.528680f, 0.528698f, 0.528729f, 0.528774f, 0.528832f, 0.528902f, 0.528986f, 0.529083f,
0.529192f, 0.529314f, 0.529449f, 0.529596f, 0.529755f, 0.529926f, 0.530110f, 0.530306f, 0.530514f, 0.530733f, 0.530964f, 0.531207f,
0.531462f, 0.531728f, 0.532005f, 0.532294f, 0.532594f, 0.532905f, 0.533228f, 0.533561f, 0.533906f, 0.534261f, 0.534628f, 0.535006f,
0.535394f, 0.535793f, 0.536203f, 0.536624f, 0.537055f, 0.537497f, 0.537950f, 0.538413f, 0.538886f, 0.539370f, 0.539864f, 0.540368f,
0.540883f, 0.541407f, 0.541942f, 0.542486f, 0.543039f, 0.543602f, 0.544175f, 0.544756f, 0.545347f, 0.545946f, 0.546554f, 0.547171f,
0.547795f, 0.548428f, 0.549068f, 0.549715f, 0.550370f, 0.551032f, 0.551700f, 0.552374f, 0.553054f, 0.553740f, 0.554432f, 0.555128f,
0.555829f, 0.556534f, 0.557243f, 0.557956f, 0.558672f, 0.559391f, 0.560113f, 0.560836f, 0.561562f, 0.562289f, 0.563017f, 0.563746f,
0.564475f, 0.565204f, 0.565932f, 0.566660f, 0.567387f, 0.568112f, 0.568836f, 0.569557f, 0.570276f, 0.570992f, 0.571705f, 0.572414f,
0.573119f, 0.573820f, 0.574517f, 0.575209f, 0.575896f, 0.576577f, 0.577253f, 0.577922f, 0.578586f, 0.579243f, 0.579893f, 0.580536f,
0.581173f, 0.581801f, 0.582422f, 0.583036f, 0.583641f, 0.584238f, 0.584826f, 0.585406f, 0.585977f, 0.586540f, 0.587093f, 0.587637f,
0.588171f, 0.588697f, 0.589212f, 0.589718f, 0.590214f, 0.590700f, 0.591176f, 0.591641f, 0.592097f, 0.592542f, 0.592976f, 0.593400f,
0.593814f, 0.594217f, 0.594609f, 0.594990f, 0.595360f, 0.595719f, 0.596067f, 0.596404f, 0.596729f, 0.597044f, 0.597346f, 0.597637f,
0.597915f, 0.598181f, 0.598435f, 0.598675f, 0.598902f, 0.599115f, 0.599313f, 0.599496f, 0.599663f, 0.599813f, 0.599946f, 0.600060f,
0.600155f, 0.600228f, 0.600280f, 0.600308f, 0.600311f, 0.600289f, 0.600238f, 0.600158f, 0.600047f, 0.599903f, 0.599725f, 0.599509f,
0.599255f, 0.598960f, 0.598622f, 0.598239f, 0.597809f, 0.597329f, 0.596797f, 0.596211f, 0.595569f, 0.594868f, 0.594106f, 0.593281f,
0.592389f, 0.591430f, 0.590400f, 0.589297f, 0.588119f, 0.586863f, 0.585528f, 0.584112f, 0.582611f, 0.581024f, 0.579350f, 0.577585f,
0.575729f, 0.573778f, 0.571732f, 0.569589f, 0.567347f, 0.565004f, 0.562560f, 0.560012f, 0.557360f, 0.554602f, 0.551737f, 0.548765f,
0.545683f, 0.542492f, 0.539190f, 0.535777f, 0.532253f, 0.528616f, 0.524867f, 0.521005f, 0.517030f, 0.512943f, 0.508741f, 0.504427f,
0.500000f, 0.495460f, 0.490808f, 0.486043f, 0.481167f, 0.476179f, 0.471081f, 0.465873f, 0.460556f, 0.455130f, 0.449596f, 0.443956f,
0.438210f, 0.432359f, 0.426405f, 0.420347f, 0.414189f, 0.407930f, 0.401572f, 0.395116f, 0.388564f, 0.381918f, 0.375177f, 0.368345f,
0.361423f, 0.354411f, 0.347312f, 0.340127f, 0.332859f, 0.325508f, 0.318076f, 0.310565f, 0.302977f, 0.295314f, 0.287577f, 0.279768f,
0.271889f, 0.263941f, 0.255928f, 0.247849f, 0.239708f, 0.231506f, 0.223244f, 0.214925f, 0.206551f, 0.198124f, 0.189644f, 0.181114f,
0.172537f, 0.163913f, 0.155244f, 0.146532f, 0.137780f, 0.128988f, 0.120159f, 0.111294f, 0.102395f, 0.093464f, 0.084502f, 0.075511f,
0.066493f, 0.057450f, 0.048383f, 0.039293f, 0.030183f, 0.021054f, 0.011908f, 0.002745f, -0.006431f, -0.015620f, -0.024821f, -0.034031f,
-0.043249f, -0.052474f, -0.061704f, -0.070938f, -0.080174f, -0.089411f, -0.098648f, -0.107883f, -0.117115f, -0.126342f, -0.135563f, -0.144777f,
-0.153982f, -0.163178f, -0.172362f, -0.181534f, -0.190692f, -0.199835f, -0.208962f, -0.218072f, -0.227163f, -0.236234f, -0.245284f, -0.254312f,
-0.263316f, -0.272296f, -0.281250f, -0.290177f, -0.299076f, -0.307946f, -0.316785f, -0.325593f, -0.334369f, -0.343110f, -0.351817f, -0.360489f,
-0.369123f, -0.377720f, -0.386278f, -0.394796f, -0.403273f, -0.411708f, -0.420100f, -0.428449f, -0.436753f, -0.445011f, -0.453223f, -0.461387f,
-0.469503f, -0.477570f, -0.485587f, -0.493554f, -0.501468f, -0.509330f, -0.517139f, -0.524894f, -0.532594f, -0.540239f, -0.547827f, -0.555359f,
-0.562832f, -0.570248f, -0.577604f, -0.584901f, -0.592137f, -0.599312f, -0.606426f, -0.613477f, -0.620466f, -0.627391f, -0.634252f, -0.641048f,
-0.647779f, -0.654445f, -0.661044f, -0.667577f, -0.674042f, -0.680440f, -0.686770f, -0.693032f, -0.699225f, -0.705348f, -0.711402f, -0.717387f,
-0.723301f, -0.729144f, -0.734917f, -0.740619f, -0.746250f, -0.751810f, -0.757298f, -0.762714f, -0.768059f, -0.773331f, -0.778532f, -0.783660f,
-0.788717f, -0.793701f, -0.798613f, -0.803453f, -0.808221f, -0.812916f, -0.817540f, -0.822091f, -0.826571f, -0.830978f, -0.835314f, -0.839578f,
-0.843771f, -0.847892f, -0.851942f, -0.855920f, -0.859828f, -0.863665f, -0.867431f, -0.871127f, -0.874752f, -0.878307f, -0.881792f, -0.885207f,
-0.888553f, -0.891829f, -0.895036f, -0.898175f, -0.901244f, -0.904245f, -0.907179f, -0.910044f, -0.912841f, -0.915572f, -0.918235f, -0.920832f,
-0.923362f, -0.925827f, -0.928225f, -0.930559f, -0.932828f, -0.935032f, -0.937172f, -0.939248f, -0.941261f, -0.943211f, -0.945099f, -0.946925f,
-0.948690f, -0.950394f, -0.952038f, -0.953621f, -0.955146f, -0.956611f, -0.958019f, -0.959369f, -0.960661f, -0.961898f, -0.963078f, -0.964203f,
-0.965274f, -0.966291f, -0.967254f, -0.968164f, -0.969022f, -0.969828f, -0.970584f, -0.971289f, -0.971944f, -0.972550f, -0.973108f, -0.973618f,
-0.974080f, -0.974496f, -0.974865f, -0.975189f, -0.975468f, -0.975703f, -0.975894f, -0.976041f, -0.976146f, -0.976209f, -0.976230f, -0.976210f,
-0.976150f, -0.976050f, -0.975910f, -0.975732f, -0.975516f, -0.975261f, -0.974970f, -0.974642f, -0.974278f, -0.973879f, -0.973445f, -0.972976f,
-0.972474f, -0.971938f, -0.971370f, -0.970769f, -0.970137f, -0.969474f, -0.968781f, -0.968058f, -0.967306f, -0.966525f, -0.965716f, -0.964880f,
-0.964017f, -0.963128f, -0.962213f, -0.961273f, -0.960309f, -0.959322f, -0.958311f, -0.957278f, -0.956223f, -0.955147f, -0.954051f, -0.952934f,
-0.951799f, -0.950645f, -0.949474f, -0.948285f, -0.947079f, -0.945858f, -0.944622f, -0.943370f, -0.942105f, -0.940827f, -0.939536f, -0.938233f,
-0.936918f, -0.935593f, -0.934257f, -0.932912f, -0.931558f, -0.930195f, -0.928824f, -0.927447f, -0.926062f, -0.924671f, -0.923275f, -0.921873f,
-0.920467f, -0.919057f, -0.917643f, -0.916226f, -0.914806f, -0.913384f, -0.911961f, -0.910536f, -0.909111f, -0.907685f, -0.906258f, -0.904833f,
-0.903408f, -0.901984f, -0.900561f, -0.899140f, -0.897721f, -0.896305f, -0.894891f, -0.893480f, -0.892072f, -0.890668f, -0.889267f, -0.887870f,
-0.886477f, -0.885088f, -0.883703f, -0.882323f, -0.880948f, -0.879577f, -0.878211f, -0.876850f, -0.875494f, -0.874143f, -0.872798f, -0.871457f,
-0.870122f, -0.868793f, -0.867468f, -0.866149f, -0.864836f, -0.863528f, -0.862226f, -0.860929f, -0.859637f, -0.858351f, -0.857070f, -0.855795f,
-0.854526f, -0.853262f, -0.852003f, -0.850750f, -0.849502f, -0.848260f, -0.847023f, -0.845792f, -0.844566f, -0.843346f, -0.842131f, -0.840922f,
-0.839719f, -0.838521f, -0.837329f, -0.836142f, -0.834962f, -0.833787f, -0.832618f, -0.831455f, -0.830299f, -0.829148f, -0.828003f, -0.826865f,
-0.825733f, -0.824607f, -0.823488f, -0.822376f, -0.821270f, -0.820171f, -0.819078f, -0.817993f, -0.816915f, -0.815844f, -0.814780f, -0.813724f,
-0.812675f, -0.811635f, -0.810602f, -0.809577f, -0.808560f, -0.807552f, -0.806552f, -0.805561f, -0.804580f, -0.803607f, -0.802644f, -0.801691f,
-0.800748f, -0.799814f, -0.798892f, -0.797980f, -0.797079f, -0.796189f, -0.795311f, -0.794445f, -0.793591f, -0.792749f, -0.791920f, -0.791105f,
-0.790302f, -0.789514f, -0.788739f, -0.787979f, -0.787233f, -0.786503f, -0.785787f, -0.785087f, -0.784404f, -0.783736f, -0.783085f, -0.782450f,
-0.781833f, -0.781233f, -0.780652f, -0.780088f, -0.779542f, -0.779015f, -0.778507f, -0.778018f, -0.777548f, -0.777099f, -0.776669f, -0.776259f,
-0.775870f, -0.775502f, -0.775154f, -0.774828f, -0.774523f, -0.774240f, -0.773979f, -0.773739f, -0.773522f, -0.773327f, -0.773154f, -0.773004f,
-0.772877f, -0.772773f, -0.772691f, -0.772633f, -0.772597f, -0.772585f, -0.772596f, -0.772630f, -0.772687f, -0.772767f, -0.772870f, -0.772996f,
-0.773145f, -0.773317f, -0.773511f, -0.773729f, -0.773968f, -0.774230f, -0.774514f, -0.774820f, -0.775147f, -0.775497f, -0.775867f, -0.776258f,
-0.776671f, -0.777104f, -0.777557f, -0.778031f, -0.778524f, -0.779037f, -0.779570f, -0.780122f, -0.780692f, -0.781282f, -0.781889f, -0.782515f,
-0.783159f, -0.783821f, -0.784500f, -0.785196f, -0.785909f, -0.786639f, -0.787386f, -0.788149f, -0.788927f, -0.789722f, -0.790532f, -0.791357f,
};


#define deep_saw_count 1200

SGFLT deep_saw_array[deep_saw_count]  = {
0.458748f, 0.459068f, 0.459384f, 0.459676f, 0.459953f, 0.460239f, 0.460569f, 0.460983f, 0.461520f, 0.462216f, 0.463103f, 0.464205f,
0.465541f, 0.467121f, 0.468948f, 0.471019f, 0.473323f, 0.475846f, 0.478567f, 0.481463f, 0.484506f, 0.487670f, 0.490923f, 0.494235f,
0.497577f, 0.500918f, 0.504231f, 0.507489f, 0.510668f, 0.513745f, 0.516700f, 0.519516f, 0.522178f, 0.524673f, 0.526992f, 0.529129f,
0.531076f, 0.532833f, 0.534398f, 0.535773f, 0.536961f, 0.537966f, 0.538793f, 0.539451f, 0.539946f, 0.540287f, 0.540484f, 0.540547f,
0.540485f, 0.540308f, 0.540027f, 0.539653f, 0.539194f, 0.538662f, 0.538065f, 0.537413f, 0.536714f, 0.535976f, 0.535208f, 0.534417f,
0.533609f, 0.532790f, 0.531967f, 0.531144f, 0.530326f, 0.529516f, 0.528719f, 0.527938f, 0.527174f, 0.526430f, 0.525708f, 0.525010f,
0.524335f, 0.523685f, 0.523060f, 0.522461f, 0.521886f, 0.521336f, 0.520811f, 0.520308f, 0.519829f, 0.519371f, 0.518934f, 0.518517f,
0.518118f, 0.517736f, 0.517371f, 0.517021f, 0.516685f, 0.516362f, 0.516050f, 0.515748f, 0.515456f, 0.515171f, 0.514894f, 0.514622f,
0.514356f, 0.514093f, 0.513833f, 0.513574f, 0.513317f, 0.513059f, 0.512801f, 0.512541f, 0.512277f, 0.512011f, 0.511739f, 0.511462f,
0.511179f, 0.510889f, 0.510590f, 0.510283f, 0.509965f, 0.509637f, 0.509297f, 0.508944f, 0.508578f, 0.508196f, 0.507798f, 0.507383f,
0.506950f, 0.506496f, 0.506021f, 0.505524f, 0.505003f, 0.504456f, 0.503882f, 0.503280f, 0.502648f, 0.501984f, 0.501287f, 0.500555f,
0.499787f, 0.498981f, 0.498136f, 0.497250f, 0.496322f, 0.495350f, 0.494334f, 0.493272f, 0.492163f, 0.491006f, 0.489801f, 0.488547f,
0.487243f, 0.485888f, 0.484483f, 0.483027f, 0.481520f, 0.479962f, 0.478354f, 0.476695f, 0.474987f, 0.473230f, 0.471423f, 0.469570f,
0.467669f, 0.465723f, 0.463732f, 0.461698f, 0.459621f, 0.457504f, 0.455348f, 0.453154f, 0.450925f, 0.448661f, 0.446364f, 0.444036f,
0.441678f, 0.439293f, 0.436881f, 0.434445f, 0.431986f, 0.429505f, 0.427004f, 0.424484f, 0.421945f, 0.419391f, 0.416820f, 0.414235f,
0.411636f, 0.409024f, 0.406399f, 0.403763f, 0.401116f, 0.398457f, 0.395789f, 0.393110f, 0.390422f, 0.387726f, 0.385020f, 0.382306f,
0.379584f, 0.376854f, 0.374117f, 0.371373f, 0.368623f, 0.365867f, 0.363106f, 0.360339f, 0.357569f, 0.354795f, 0.352017f, 0.349238f,
0.346456f, 0.343674f, 0.340892f, 0.338111f, 0.335331f, 0.332554f, 0.329780f, 0.327010f, 0.324246f, 0.321488f, 0.318737f, 0.315994f,
0.313260f, 0.310536f, 0.307823f, 0.305122f, 0.302433f, 0.299758f, 0.297097f, 0.294451f, 0.291821f, 0.289207f, 0.286610f, 0.284031f,
0.281469f, 0.278925f, 0.276400f, 0.273893f, 0.271405f, 0.268936f, 0.266484f, 0.264051f, 0.261636f, 0.259238f, 0.256858f, 0.254493f,
0.252145f, 0.249811f, 0.247492f, 0.245187f, 0.242895f, 0.240615f, 0.238346f, 0.236089f, 0.233841f, 0.231603f, 0.229374f, 0.227154f,
0.224942f, 0.222738f, 0.220541f, 0.218351f, 0.216169f, 0.213994f, 0.211827f, 0.209667f, 0.207515f, 0.205372f, 0.203239f, 0.201115f,
0.199001f, 0.196899f, 0.194809f, 0.192733f, 0.190671f, 0.188625f, 0.186595f, 0.184584f, 0.182593f, 0.180622f, 0.178674f, 0.176750f,
0.174851f, 0.172979f, 0.171136f, 0.169323f, 0.167541f, 0.165791f, 0.164076f, 0.162396f, 0.160753f, 0.159148f, 0.157581f, 0.156054f,
0.154567f, 0.153122f, 0.151718f, 0.150357f, 0.149038f, 0.147762f, 0.146530f, 0.145340f, 0.144194f, 0.143090f, 0.142030f, 0.141012f,
0.140037f, 0.139104f, 0.138213f, 0.137364f, 0.136555f, 0.135787f, 0.135059f, 0.134371f, 0.133722f, 0.133111f, 0.132539f, 0.132003f,
0.131505f, 0.131042f, 0.130614f, 0.130221f, 0.129861f, 0.129534f, 0.129238f, 0.128973f, 0.128738f, 0.128531f, 0.128351f, 0.128197f,
0.128068f, 0.127962f, 0.127879f, 0.127815f, 0.127771f, 0.127744f, 0.127733f, 0.127736f, 0.127752f, 0.127778f, 0.127813f, 0.127855f,
0.127901f, 0.127951f, 0.128001f, 0.128050f, 0.128095f, 0.128135f, 0.128166f, 0.128187f, 0.128194f, 0.128187f, 0.128162f, 0.128117f,
0.128050f, 0.127958f, 0.127839f, 0.127690f, 0.127510f, 0.127296f, 0.127045f, 0.126757f, 0.126428f, 0.126057f, 0.125642f, 0.125181f,
0.124672f, 0.124115f, 0.123506f, 0.122845f, 0.122130f, 0.121361f, 0.120536f, 0.119653f, 0.118713f, 0.117713f, 0.116654f, 0.115535f,
0.114354f, 0.113112f, 0.111807f, 0.110440f, 0.109010f, 0.107516f, 0.105959f, 0.104338f, 0.102653f, 0.100904f, 0.099091f, 0.097215f,
0.095275f, 0.093271f, 0.091205f, 0.089077f, 0.086887f, 0.084636f, 0.082326f, 0.079956f, 0.077529f, 0.075046f, 0.072508f, 0.069917f,
0.067275f, 0.064583f, 0.061844f, 0.059060f, 0.056234f, 0.053367f, 0.050463f, 0.047524f, 0.044552f, 0.041551f, 0.038523f, 0.035472f,
0.032401f, 0.029311f, 0.026207f, 0.023091f, 0.019966f, 0.016835f, 0.013702f, 0.010568f, 0.007437f, 0.004312f, 0.001196f, -0.001910f,
-0.005001f, -0.008075f, -0.011131f, -0.014164f, -0.017172f, -0.020153f, -0.023103f, -0.026021f, -0.028904f, -0.031748f, -0.034552f, -0.037313f,
-0.040027f, -0.042694f, -0.045309f, -0.047871f, -0.050377f, -0.052825f, -0.055213f, -0.057537f, -0.059797f, -0.061989f, -0.064112f, -0.066164f,
-0.068143f, -0.070047f, -0.071876f, -0.073627f, -0.075299f, -0.076891f, -0.078403f, -0.079832f, -0.081179f, -0.082442f, -0.083622f, -0.084718f,
-0.085730f, -0.086658f, -0.087502f, -0.088262f, -0.088940f, -0.089534f, -0.090047f, -0.090479f, -0.090832f, -0.091106f, -0.091303f, -0.091425f,
-0.091474f, -0.091451f, -0.091359f, -0.091200f, -0.090977f, -0.090691f, -0.090345f, -0.089943f, -0.089487f, -0.088980f, -0.088425f, -0.087826f,
-0.087185f, -0.086506f, -0.085792f, -0.085046f, -0.084273f, -0.083475f, -0.082656f, -0.081819f, -0.080968f, -0.080107f, -0.079238f, -0.078365f,
-0.077492f, -0.076622f, -0.075758f, -0.074904f, -0.074063f, -0.073237f, -0.072430f, -0.071645f, -0.070885f, -0.070152f, -0.069449f, -0.068779f,
-0.068143f, -0.067545f, -0.066985f, -0.066467f, -0.065992f, -0.065562f, -0.065178f, -0.064841f, -0.064554f, -0.064316f, -0.064129f, -0.063994f,
-0.063912f, -0.063882f, -0.063905f, -0.063982f, -0.064112f, -0.064296f, -0.064532f, -0.064821f, -0.065161f, -0.065554f, -0.065996f, -0.066489f,
-0.067029f, -0.067618f, -0.068252f, -0.068931f, -0.069654f, -0.070418f, -0.071223f, -0.072067f, -0.072948f, -0.073865f, -0.074815f, -0.075797f,
-0.076809f, -0.077850f, -0.078917f, -0.080009f, -0.081123f, -0.082258f, -0.083412f, -0.084583f, -0.085769f, -0.086968f, -0.088178f, -0.089397f,
-0.090623f, -0.091855f, -0.093089f, -0.094324f, -0.095558f, -0.096789f, -0.098015f, -0.099233f, -0.100443f, -0.101640f, -0.102824f, -0.103993f,
-0.105143f, -0.106274f, -0.107382f, -0.108465f, -0.109522f, -0.110549f, -0.111545f, -0.112508f, -0.113434f, -0.114322f, -0.115169f, -0.115973f,
-0.116732f, -0.117443f, -0.118104f, -0.118713f, -0.119268f, -0.119767f, -0.120207f, -0.120587f, -0.120906f, -0.121161f, -0.121351f, -0.121475f,
-0.121532f, -0.121522f, -0.121442f, -0.121293f, -0.121075f, -0.120787f, -0.120430f, -0.120004f, -0.119509f, -0.118947f, -0.118317f, -0.117623f,
-0.116864f, -0.116042f, -0.115160f, -0.114220f, -0.113223f, -0.112171f, -0.111069f, -0.109917f, -0.108719f, -0.107479f, -0.106198f, -0.104881f,
-0.103531f, -0.102151f, -0.100744f, -0.099314f, -0.097865f, -0.096400f, -0.094923f, -0.093437f, -0.091947f, -0.090457f, -0.088972f, -0.087495f,
-0.086032f, -0.084588f, -0.083169f, -0.081780f, -0.080429f, -0.079121f, -0.077866f, -0.076669f, -0.075541f, -0.074490f, -0.073526f, -0.072658f,
-0.071898f, -0.071257f, -0.070746f, -0.070377f, -0.070163f, -0.070116f, -0.070249f, -0.070576f, -0.071109f, -0.071863f, -0.072849f, -0.074082f,
-0.075574f, -0.077338f, -0.079387f, -0.081732f, -0.084386f, -0.087359f, -0.090660f, -0.094301f, -0.098290f, -0.102635f, -0.107343f, -0.112420f,
-0.117872f, -0.123702f, -0.129915f, -0.136511f, -0.143492f, -0.150859f, -0.158608f, -0.166740f, -0.175249f, -0.184132f, -0.193382f, -0.202994f,
-0.212960f, -0.223271f, -0.233918f, -0.244891f, -0.256178f, -0.267767f, -0.279646f, -0.291801f, -0.304218f, -0.316882f, -0.329778f, -0.342890f,
-0.356203f, -0.369698f, -0.383361f, -0.397172f, -0.411115f, -0.425173f, -0.439327f, -0.453559f, -0.467853f, -0.482189f, -0.496551f, -0.510920f,
-0.525280f, -0.539612f, -0.553901f, -0.568129f, -0.582279f, -0.596336f, -0.610285f, -0.624108f, -0.637792f, -0.651323f, -0.664686f, -0.677867f,
-0.690855f, -0.703637f, -0.716201f, -0.728536f, -0.740632f, -0.752480f, -0.764069f, -0.775393f, -0.786443f, -0.797212f, -0.807694f, -0.817884f,
-0.827777f, -0.837368f, -0.846654f, -0.855632f, -0.864300f, -0.872656f, -0.880700f, -0.888431f, -0.895848f, -0.902954f, -0.909748f, -0.916233f,
-0.922411f, -0.928284f, -0.933856f, -0.939129f, -0.944108f, -0.948797f, -0.953200f, -0.957323f, -0.961169f, -0.964744f, -0.968054f, -0.971104f,
-0.973901f, -0.976450f, -0.978757f, -0.980828f, -0.982671f, -0.984290f, -0.985694f, -0.986887f, -0.987877f, -0.988670f, -0.989272f, -0.989690f,
-0.989931f, -0.990000f, -0.989904f, -0.989649f, -0.989240f, -0.988685f, -0.987988f, -0.987155f, -0.986192f, -0.985104f, -0.983895f, -0.982571f,
-0.981136f, -0.979595f, -0.977951f, -0.976209f, -0.974373f, -0.972445f, -0.970429f, -0.968328f, -0.966145f, -0.963882f, -0.961541f, -0.959124f,
-0.956633f, -0.954070f, -0.951435f, -0.948730f, -0.945956f, -0.943113f, -0.940202f, -0.937224f, -0.934178f, -0.931064f, -0.927884f, -0.924636f,
-0.921321f, -0.917939f, -0.914488f, -0.910970f, -0.907383f, -0.903728f, -0.900004f, -0.896211f, -0.892348f, -0.888416f, -0.884414f, -0.880342f,
-0.876199f, -0.871987f, -0.867704f, -0.863351f, -0.858929f, -0.854436f, -0.849875f, -0.845245f, -0.840546f, -0.835780f, -0.830946f, -0.826047f,
-0.821082f, -0.816052f, -0.810959f, -0.805804f, -0.800587f, -0.795311f, -0.789975f, -0.784581f, -0.779131f, -0.773626f, -0.768067f, -0.762456f,
-0.756793f, -0.751081f, -0.745321f, -0.739514f, -0.733661f, -0.727765f, -0.721827f, -0.715848f, -0.709829f, -0.703773f, -0.697681f, -0.691553f,
-0.685393f, -0.679200f, -0.672977f, -0.666725f, -0.660445f, -0.654140f, -0.647809f, -0.641455f, -0.635079f, -0.628682f, -0.622265f, -0.615831f,
-0.609380f, -0.602913f, -0.596433f, -0.589939f, -0.583434f, -0.576919f, -0.570394f, -0.563862f, -0.557324f, -0.550780f, -0.544232f, -0.537681f,
-0.531130f, -0.524577f, -0.518026f, -0.511477f, -0.504931f, -0.498390f, -0.491853f, -0.485324f, -0.478801f, -0.472288f, -0.465783f, -0.459288f,
-0.452805f, -0.446333f, -0.439873f, -0.433427f, -0.426994f, -0.420576f, -0.414172f, -0.407784f, -0.401412f, -0.395056f, -0.388717f, -0.382396f,
-0.376093f, -0.369809f, -0.363544f, -0.357299f, -0.351074f, -0.344871f, -0.338689f, -0.332531f, -0.326395f, -0.320284f, -0.314198f, -0.308139f,
-0.302106f, -0.296101f, -0.290125f, -0.284179f, -0.278264f, -0.272380f, -0.266529f, -0.260712f, -0.254930f, -0.249182f, -0.243471f, -0.237797f,
-0.232161f, -0.226563f, -0.221004f, -0.215484f, -0.210004f, -0.204564f, -0.199165f, -0.193808f, -0.188491f, -0.183216f, -0.177982f, -0.172791f,
-0.167641f, -0.162533f, -0.157466f, -0.152442f, -0.147459f, -0.142517f, -0.137617f, -0.132758f, -0.127939f, -0.123160f, -0.118420f, -0.113720f,
-0.109059f, -0.104435f, -0.099848f, -0.095297f, -0.090782f, -0.086302f, -0.081855f, -0.077440f, -0.073057f, -0.068704f, -0.064379f, -0.060083f,
-0.055812f, -0.051567f, -0.047344f, -0.043143f, -0.038963f, -0.034801f, -0.030655f, -0.026525f, -0.022408f, -0.018302f, -0.014207f, -0.010119f,
-0.006037f, -0.001960f, 0.002114f, 0.006188f, 0.010263f, 0.014340f, 0.018421f, 0.022508f, 0.026601f, 0.030703f, 0.034814f, 0.038936f,
0.043069f, 0.047214f, 0.051371f, 0.055542f, 0.059725f, 0.063922f, 0.068131f, 0.072353f, 0.076586f, 0.080830f, 0.085084f, 0.089346f,
0.093614f, 0.097888f, 0.102164f, 0.106441f, 0.110716f, 0.114987f, 0.119251f, 0.123505f, 0.127745f, 0.131969f, 0.136173f, 0.140353f,
0.144507f, 0.148630f, 0.152720f, 0.156771f, 0.160782f, 0.164747f, 0.168664f, 0.172530f, 0.176340f, 0.180092f, 0.183783f, 0.187410f,
0.190970f, 0.194461f, 0.197882f, 0.201229f, 0.204502f, 0.207700f, 0.210820f, 0.213863f, 0.216828f, 0.219714f, 0.222522f, 0.225251f,
0.227903f, 0.230477f, 0.232975f, 0.235398f, 0.237746f, 0.240022f, 0.242227f, 0.244362f, 0.246429f, 0.248431f, 0.250369f, 0.252246f,
0.254063f, 0.255824f, 0.257531f, 0.259186f, 0.260793f, 0.262354f, 0.263871f, 0.265349f, 0.266790f, 0.268197f, 0.269574f, 0.270923f,
0.272248f, 0.273552f, 0.274838f, 0.276110f, 0.277371f, 0.278624f, 0.279873f, 0.281119f, 0.282367f, 0.283620f, 0.284879f, 0.286148f,
0.287430f, 0.288727f, 0.290041f, 0.291375f, 0.292730f, 0.294110f, 0.295514f, 0.296946f, 0.298406f, 0.299896f, 0.301418f, 0.302971f,
0.304558f, 0.306178f, 0.307832f, 0.309521f, 0.311245f, 0.313004f, 0.314797f, 0.316625f, 0.318487f, 0.320382f, 0.322309f, 0.324269f,
0.326259f, 0.328279f, 0.330327f, 0.332402f, 0.334502f, 0.336627f, 0.338774f, 0.340941f, 0.343127f, 0.345331f, 0.347550f, 0.349782f,
0.352026f, 0.354280f, 0.356542f, 0.358809f, 0.361081f, 0.363354f, 0.365628f, 0.367899f, 0.370167f, 0.372430f, 0.374686f, 0.376932f,
0.379168f, 0.381391f, 0.383600f, 0.385794f, 0.387971f, 0.390130f, 0.392269f, 0.394388f, 0.396484f, 0.398558f, 0.400608f, 0.402634f,
0.404634f, 0.406608f, 0.408555f, 0.410475f, 0.412368f, 0.414233f, 0.416069f, 0.417877f, 0.419656f, 0.421405f, 0.423126f, 0.424818f,
0.426480f, 0.428112f, 0.429715f, 0.431288f, 0.432831f, 0.434344f, 0.435828f, 0.437281f, 0.438704f, 0.440096f, 0.441459f, 0.442791f,
0.444092f, 0.445364f, 0.446604f, 0.447815f, 0.448995f, 0.450145f, 0.451265f, 0.452354f, 0.453413f, 0.454442f, 0.455441f, 0.456409f,
0.457348f, 0.458256f, 0.459134f, 0.459981f, 0.460798f, 0.461584f, 0.462339f, 0.463063f, 0.463756f, 0.464417f, 0.465046f, 0.465643f,
0.466207f, 0.466739f, 0.467237f, 0.467702f, 0.468133f, 0.468530f, 0.468893f, 0.469221f, 0.469515f, 0.469774f, 0.469998f, 0.470188f,
0.470343f, 0.470463f, 0.470550f, 0.470603f, 0.470622f, 0.470609f, 0.470564f, 0.470488f, 0.470381f, 0.470245f, 0.470080f, 0.469889f,
0.469672f, 0.469431f, 0.469167f, 0.468882f, 0.468578f, 0.468256f, 0.467919f, 0.467568f, 0.467206f, 0.466834f, 0.466454f, 0.466069f,
};

#define sine_count 1200

SGFLT sine_array[sine_count]  = {
    0.0f, 0.0052359638f, 0.0104717841f, 0.0157073173f, 0.0209424199f, 0.0261769483f, 0.0314107591f, 0.0366437087f, 0.0418756537f, 0.0471064507f, 0.0523359562f, 0.057564027f,
0.0627905195f, 0.0680152907f, 0.0732381971f, 0.0784590957f, 0.0836778433f, 0.0888942969f, 0.0941083133f, 0.0993197497f, 0.1045284633f, 0.1097343111f, 0.1149371505f, 0.1201368388f,
0.1253332336f, 0.1305261922f, 0.1357155724f, 0.1409012319f, 0.1460830286f, 0.1512608202f, 0.156434465f, 0.1616038211f, 0.1667687467f, 0.1719291003f, 0.1770847403f, 0.1822355255f,
0.1873813146f, 0.1925219665f, 0.1976573404f, 0.2027872954f, 0.2079116908f, 0.2130303863f, 0.2181432414f, 0.223250116f, 0.2283508701f, 0.2334453639f, 0.2385334576f, 0.2436150118f,
0.2486898872f, 0.2537579446f, 0.2588190451f, 0.26387305f, 0.2689198206f, 0.2739592187f, 0.278991106f, 0.2840153447f, 0.2890317969f, 0.2940403252f, 0.2990407923f, 0.3040330609f,
0.3090169944f, 0.313992456f, 0.3189593093f, 0.3239174182f, 0.3288666467f, 0.3338068592f, 0.3387379202f, 0.3436596946f, 0.3485720473f, 0.3534748438f, 0.3583679495f, 0.3632512305f,
0.3681245527f, 0.3729877826f, 0.3778407868f, 0.3826834324f, 0.3875155865f, 0.3923371166f, 0.3971478906f, 0.4019477767f, 0.4067366431f, 0.4115143586f, 0.4162807923f, 0.4210358134f,
0.4257792916f, 0.4305110968f, 0.4352310994f, 0.4399391699f, 0.4446351792f, 0.4493189986f, 0.4539904997f, 0.4586495545f, 0.4632960351f, 0.4679298143f, 0.4725507649f, 0.4771587603f,
0.4817536741f, 0.4863353804f, 0.4909037536f, 0.4954586684f, 0.5f, 0.5045276238f, 0.5090414158f, 0.5135412521f, 0.5180270094f, 0.5224985647f, 0.5269557955f, 0.5313985795f,
0.535826795f, 0.5402403205f, 0.544639035f, 0.549022818f, 0.5533915492f, 0.557745109f, 0.5620833779f, 0.5664062369f, 0.5707135677f, 0.575005252f, 0.5792811723f, 0.5835412114f,
0.5877852523f, 0.5920131788f, 0.596224875f, 0.6004202253f, 0.6045991149f, 0.608761429f, 0.6129070537f, 0.6170358751f, 0.6211477803f, 0.6252426563f, 0.629320391f, 0.6333808726f,
0.6374239897f, 0.6414496316f, 0.6454576877f, 0.6494480483f, 0.653420604f, 0.6573752458f, 0.6613118653f, 0.6652303547f, 0.6691306064f, 0.6730125135f, 0.6768759697f, 0.680720869f,
0.6845471059f, 0.6883545757f, 0.6921431739f, 0.6959127966f, 0.6996633405f, 0.7033947028f, 0.7071067812f, 0.7107994739f, 0.7144726796f, 0.7181262978f, 0.7217602281f, 0.725374371f,
0.7289686274f, 0.7325428988f, 0.7360970871f, 0.739631095f, 0.7431448255f, 0.7466381823f, 0.7501110696f, 0.7535633923f, 0.7569950557f, 0.7604059656f, 0.7637960286f, 0.7671651518f,
0.7705132428f, 0.7738402097f, 0.7771459615f, 0.7804304073f, 0.7836934573f, 0.786935022f, 0.7901550124f, 0.7933533403f, 0.796529918f, 0.7996846585f, 0.8028174752f, 0.8059282822f,
0.8090169944f, 0.8120835269f, 0.8151277957f, 0.8181497174f, 0.8211492091f, 0.8241261886f, 0.8270805743f, 0.8300122851f, 0.8329212407f, 0.8358073614f, 0.8386705679f, 0.8415107819f,
0.8443279255f, 0.8471219214f, 0.849892693f, 0.8526401644f, 0.8553642602f, 0.8580649057f, 0.860742027f, 0.8633955506f, 0.8660254038f, 0.8686315144f, 0.8712138111f, 0.873772223f,
0.87630668f, 0.8788171127f, 0.8813034521f, 0.8837656301f, 0.8862035792f, 0.8886172327f, 0.8910065242f, 0.8933713883f, 0.8957117602f, 0.8980275758f, 0.9003187714f, 0.9025852843f,
0.9048270525f, 0.9070440143f, 0.909236109f, 0.9114032766f, 0.9135454576f, 0.9156625933f, 0.9177546257f, 0.9198214973f, 0.9218631516f, 0.9238795325f, 0.9258705848f, 0.9278362539f,
0.9297764859f, 0.9316912276f, 0.9335804265f, 0.9354440308f, 0.9372819895f, 0.9390942521f, 0.940880769f, 0.9426414911f, 0.9443763702f, 0.9460853588f, 0.94776841f, 0.9494254776f,
0.9510565163f, 0.9526614813f, 0.9542403285f, 0.9557930148f, 0.9573194975f, 0.9588197349f, 0.9602936857f, 0.9617413095f, 0.9631625668f, 0.9645574185f, 0.9659258263f, 0.9672677528f,
0.9685831611f, 0.9698720153f, 0.9711342799f, 0.9723699204f, 0.9735789029f, 0.9747611942f, 0.9759167619f, 0.9770455744f, 0.9781476007f, 0.9792228106f, 0.9802711746f, 0.981292664f,
0.9822872507f, 0.9832549076f, 0.984195608f, 0.9851093262f, 0.9859960371f, 0.9868557164f, 0.9876883406f, 0.9884938868f, 0.989272333f, 0.9900236577f, 0.9907478405f, 0.9914448614f,
0.9921147013f, 0.9927573419f, 0.9933727656f, 0.9939609555f, 0.9945218954f, 0.99505557f, 0.9955619646f, 0.9960410654f, 0.9964928592f, 0.9969173337f, 0.9973144772f, 0.9976842788f,
0.9980267284f, 0.9983418166f, 0.9986295348f, 0.998889875f, 0.9991228301f, 0.9993283938f, 0.9995065604f, 0.999657325f, 0.9997806835f, 0.9998766325f, 0.9999451694f, 0.9999862922f,
1.0f, 0.9999862922f, 0.9999451694f, 0.9998766325f, 0.9997806835f, 0.999657325f, 0.9995065604f, 0.9993283938f, 0.9991228301f, 0.998889875f, 0.9986295348f, 0.9983418166f,
0.9980267284f, 0.9976842788f, 0.9973144772f, 0.9969173337f, 0.9964928592f, 0.9960410654f, 0.9955619646f, 0.99505557f, 0.9945218954f, 0.9939609555f, 0.9933727656f, 0.9927573419f,
0.9921147013f, 0.9914448614f, 0.9907478405f, 0.9900236577f, 0.989272333f, 0.9884938868f, 0.9876883406f, 0.9868557164f, 0.9859960371f, 0.9851093262f, 0.984195608f, 0.9832549076f,
0.9822872507f, 0.981292664f, 0.9802711746f, 0.9792228106f, 0.9781476007f, 0.9770455744f, 0.9759167619f, 0.9747611942f, 0.9735789029f, 0.9723699204f, 0.9711342799f, 0.9698720153f,
0.9685831611f, 0.9672677528f, 0.9659258263f, 0.9645574185f, 0.9631625668f, 0.9617413095f, 0.9602936857f, 0.9588197349f, 0.9573194975f, 0.9557930148f, 0.9542403285f, 0.9526614813f,
0.9510565163f, 0.9494254776f, 0.94776841f, 0.9460853588f, 0.9443763702f, 0.9426414911f, 0.940880769f, 0.9390942521f, 0.9372819895f, 0.9354440308f, 0.9335804265f, 0.9316912276f,
0.9297764859f, 0.9278362539f, 0.9258705848f, 0.9238795325f, 0.9218631516f, 0.9198214973f, 0.9177546257f, 0.9156625933f, 0.9135454576f, 0.9114032766f, 0.909236109f, 0.9070440143f,
0.9048270525f, 0.9025852843f, 0.9003187714f, 0.8980275758f, 0.8957117602f, 0.8933713883f, 0.8910065242f, 0.8886172327f, 0.8862035792f, 0.8837656301f, 0.8813034521f, 0.8788171127f,
0.87630668f, 0.873772223f, 0.8712138111f, 0.8686315144f, 0.8660254038f, 0.8633955506f, 0.860742027f, 0.8580649057f, 0.8553642602f, 0.8526401644f, 0.849892693f, 0.8471219214f,
0.8443279255f, 0.8415107819f, 0.8386705679f, 0.8358073614f, 0.8329212407f, 0.8300122851f, 0.8270805743f, 0.8241261886f, 0.8211492091f, 0.8181497174f, 0.8151277957f, 0.8120835269f,
0.8090169944f, 0.8059282822f, 0.8028174752f, 0.7996846585f, 0.796529918f, 0.7933533403f, 0.7901550124f, 0.786935022f, 0.7836934573f, 0.7804304073f, 0.7771459615f, 0.7738402097f,
0.7705132428f, 0.7671651518f, 0.7637960286f, 0.7604059656f, 0.7569950557f, 0.7535633923f, 0.7501110696f, 0.7466381823f, 0.7431448255f, 0.739631095f, 0.7360970871f, 0.7325428988f,
0.7289686274f, 0.725374371f, 0.7217602281f, 0.7181262978f, 0.7144726796f, 0.7107994739f, 0.7071067812f, 0.7033947028f, 0.6996633405f, 0.6959127966f, 0.6921431739f, 0.6883545757f,
0.6845471059f, 0.680720869f, 0.6768759697f, 0.6730125135f, 0.6691306064f, 0.6652303547f, 0.6613118653f, 0.6573752458f, 0.653420604f, 0.6494480483f, 0.6454576877f, 0.6414496316f,
0.6374239897f, 0.6333808726f, 0.629320391f, 0.6252426563f, 0.6211477803f, 0.6170358751f, 0.6129070537f, 0.608761429f, 0.6045991149f, 0.6004202253f, 0.596224875f, 0.5920131788f,
0.5877852523f, 0.5835412114f, 0.5792811723f, 0.575005252f, 0.5707135677f, 0.5664062369f, 0.5620833779f, 0.557745109f, 0.5533915492f, 0.549022818f, 0.544639035f, 0.5402403205f,
0.535826795f, 0.5313985795f, 0.5269557955f, 0.5224985647f, 0.5180270094f, 0.5135412521f, 0.5090414158f, 0.5045276238f, 0.5f, 0.4954586684f, 0.4909037536f, 0.4863353804f,
0.4817536741f, 0.4771587603f, 0.4725507649f, 0.4679298143f, 0.4632960351f, 0.4586495545f, 0.4539904997f, 0.4493189986f, 0.4446351792f, 0.4399391699f, 0.4352310994f, 0.4305110968f,
0.4257792916f, 0.4210358134f, 0.4162807923f, 0.4115143586f, 0.4067366431f, 0.4019477767f, 0.3971478906f, 0.3923371166f, 0.3875155865f, 0.3826834324f, 0.3778407868f, 0.3729877826f,
0.3681245527f, 0.3632512305f, 0.3583679495f, 0.3534748438f, 0.3485720473f, 0.3436596946f, 0.3387379202f, 0.3338068592f, 0.3288666467f, 0.3239174182f, 0.3189593093f, 0.313992456f,
0.3090169944f, 0.3040330609f, 0.2990407923f, 0.2940403252f, 0.2890317969f, 0.2840153447f, 0.278991106f, 0.2739592187f, 0.2689198206f, 0.26387305f, 0.2588190451f, 0.2537579446f,
0.2486898872f, 0.2436150118f, 0.2385334576f, 0.2334453639f, 0.2283508701f, 0.223250116f, 0.2181432414f, 0.2130303863f, 0.2079116908f, 0.2027872954f, 0.1976573404f, 0.1925219665f,
0.1873813146f, 0.1822355255f, 0.1770847403f, 0.1719291003f, 0.1667687467f, 0.1616038211f, 0.156434465f, 0.1512608202f, 0.1460830286f, 0.1409012319f, 0.1357155724f, 0.1305261922f,
0.1253332336f, 0.1201368388f, 0.1149371505f, 0.1097343111f, 0.1045284633f, 0.0993197497f, 0.0941083133f, 0.0888942969f, 0.0836778433f, 0.0784590957f, 0.0732381971f, 0.0680152907f,
0.0627905195f, 0.057564027f, 0.0523359562f, 0.0471064507f, 0.0418756537f, 0.0366437087f, 0.0314107591f, 0.0261769483f, 0.0209424199f, 0.0157073173f, 0.0104717841f, 0.0052359638f,
-0.0f, -0.0052359638f, -0.0104717841f, -0.0157073173f, -0.0209424199f, -0.0261769483f, -0.0314107591f, -0.0366437087f, -0.0418756537f, -0.0471064507f, -0.0523359562f, -0.057564027f,
-0.0627905195f, -0.0680152907f, -0.0732381971f, -0.0784590957f, -0.0836778433f, -0.0888942969f, -0.0941083133f, -0.0993197497f, -0.1045284633f, -0.1097343111f, -0.1149371505f, -0.1201368388f,
-0.1253332336f, -0.1305261922f, -0.1357155724f, -0.1409012319f, -0.1460830286f, -0.1512608202f, -0.156434465f, -0.1616038211f, -0.1667687467f, -0.1719291003f, -0.1770847403f, -0.1822355255f,
-0.1873813146f, -0.1925219665f, -0.1976573404f, -0.2027872954f, -0.2079116908f, -0.2130303863f, -0.2181432414f, -0.223250116f, -0.2283508701f, -0.2334453639f, -0.2385334576f, -0.2436150118f,
-0.2486898872f, -0.2537579446f, -0.2588190451f, -0.26387305f, -0.2689198206f, -0.2739592187f, -0.278991106f, -0.2840153447f, -0.2890317969f, -0.2940403252f, -0.2990407923f, -0.3040330609f,
-0.3090169944f, -0.313992456f, -0.3189593093f, -0.3239174182f, -0.3288666467f, -0.3338068592f, -0.3387379202f, -0.3436596946f, -0.3485720473f, -0.3534748438f, -0.3583679495f, -0.3632512305f,
-0.3681245527f, -0.3729877826f, -0.3778407868f, -0.3826834324f, -0.3875155865f, -0.3923371166f, -0.3971478906f, -0.4019477767f, -0.4067366431f, -0.4115143586f, -0.4162807923f, -0.4210358134f,
-0.4257792916f, -0.4305110968f, -0.4352310994f, -0.4399391699f, -0.4446351792f, -0.4493189986f, -0.4539904997f, -0.4586495545f, -0.4632960351f, -0.4679298143f, -0.4725507649f, -0.4771587603f,
-0.4817536741f, -0.4863353804f, -0.4909037536f, -0.4954586684f, -0.5f, -0.5045276238f, -0.5090414158f, -0.5135412521f, -0.5180270094f, -0.5224985647f, -0.5269557955f, -0.5313985795f,
-0.535826795f, -0.5402403205f, -0.544639035f, -0.549022818f, -0.5533915492f, -0.557745109f, -0.5620833779f, -0.5664062369f, -0.5707135677f, -0.575005252f, -0.5792811723f, -0.5835412114f,
-0.5877852523f, -0.5920131788f, -0.596224875f, -0.6004202253f, -0.6045991149f, -0.608761429f, -0.6129070537f, -0.6170358751f, -0.6211477803f, -0.6252426563f, -0.629320391f, -0.6333808726f,
-0.6374239897f, -0.6414496316f, -0.6454576877f, -0.6494480483f, -0.653420604f, -0.6573752458f, -0.6613118653f, -0.6652303547f, -0.6691306064f, -0.6730125135f, -0.6768759697f, -0.680720869f,
-0.6845471059f, -0.6883545757f, -0.6921431739f, -0.6959127966f, -0.6996633405f, -0.7033947028f, -0.7071067812f, -0.7107994739f, -0.7144726796f, -0.7181262978f, -0.7217602281f, -0.725374371f,
-0.7289686274f, -0.7325428988f, -0.7360970871f, -0.739631095f, -0.7431448255f, -0.7466381823f, -0.7501110696f, -0.7535633923f, -0.7569950557f, -0.7604059656f, -0.7637960286f, -0.7671651518f,
-0.7705132428f, -0.7738402097f, -0.7771459615f, -0.7804304073f, -0.7836934573f, -0.786935022f, -0.7901550124f, -0.7933533403f, -0.796529918f, -0.7996846585f, -0.8028174752f, -0.8059282822f,
-0.8090169944f, -0.8120835269f, -0.8151277957f, -0.8181497174f, -0.8211492091f, -0.8241261886f, -0.8270805743f, -0.8300122851f, -0.8329212407f, -0.8358073614f, -0.8386705679f, -0.8415107819f,
-0.8443279255f, -0.8471219214f, -0.849892693f, -0.8526401644f, -0.8553642602f, -0.8580649057f, -0.860742027f, -0.8633955506f, -0.8660254038f, -0.8686315144f, -0.8712138111f, -0.873772223f,
-0.87630668f, -0.8788171127f, -0.8813034521f, -0.8837656301f, -0.8862035792f, -0.8886172327f, -0.8910065242f, -0.8933713883f, -0.8957117602f, -0.8980275758f, -0.9003187714f, -0.9025852843f,
-0.9048270525f, -0.9070440143f, -0.909236109f, -0.9114032766f, -0.9135454576f, -0.9156625933f, -0.9177546257f, -0.9198214973f, -0.9218631516f, -0.9238795325f, -0.9258705848f, -0.9278362539f,
-0.9297764859f, -0.9316912276f, -0.9335804265f, -0.9354440308f, -0.9372819895f, -0.9390942521f, -0.940880769f, -0.9426414911f, -0.9443763702f, -0.9460853588f, -0.94776841f, -0.9494254776f,
-0.9510565163f, -0.9526614813f, -0.9542403285f, -0.9557930148f, -0.9573194975f, -0.9588197349f, -0.9602936857f, -0.9617413095f, -0.9631625668f, -0.9645574185f, -0.9659258263f, -0.9672677528f,
-0.9685831611f, -0.9698720153f, -0.9711342799f, -0.9723699204f, -0.9735789029f, -0.9747611942f, -0.9759167619f, -0.9770455744f, -0.9781476007f, -0.9792228106f, -0.9802711746f, -0.981292664f,
-0.9822872507f, -0.9832549076f, -0.984195608f, -0.9851093262f, -0.9859960371f, -0.9868557164f, -0.9876883406f, -0.9884938868f, -0.989272333f, -0.9900236577f, -0.9907478405f, -0.9914448614f,
-0.9921147013f, -0.9927573419f, -0.9933727656f, -0.9939609555f, -0.9945218954f, -0.99505557f, -0.9955619646f, -0.9960410654f, -0.9964928592f, -0.9969173337f, -0.9973144772f, -0.9976842788f,
-0.9980267284f, -0.9983418166f, -0.9986295348f, -0.998889875f, -0.9991228301f, -0.9993283938f, -0.9995065604f, -0.999657325f, -0.9997806835f, -0.9998766325f, -0.9999451694f, -0.9999862922f,
-1.0f, -0.9999862922f, -0.9999451694f, -0.9998766325f, -0.9997806835f, -0.999657325f, -0.9995065604f, -0.9993283938f, -0.9991228301f, -0.998889875f, -0.9986295348f, -0.9983418166f,
-0.9980267284f, -0.9976842788f, -0.9973144772f, -0.9969173337f, -0.9964928592f, -0.9960410654f, -0.9955619646f, -0.99505557f, -0.9945218954f, -0.9939609555f, -0.9933727656f, -0.9927573419f,
-0.9921147013f, -0.9914448614f, -0.9907478405f, -0.9900236577f, -0.989272333f, -0.9884938868f, -0.9876883406f, -0.9868557164f, -0.9859960371f, -0.9851093262f, -0.984195608f, -0.9832549076f,
-0.9822872507f, -0.981292664f, -0.9802711746f, -0.9792228106f, -0.9781476007f, -0.9770455744f, -0.9759167619f, -0.9747611942f, -0.9735789029f, -0.9723699204f, -0.9711342799f, -0.9698720153f,
-0.9685831611f, -0.9672677528f, -0.9659258263f, -0.9645574185f, -0.9631625668f, -0.9617413095f, -0.9602936857f, -0.9588197349f, -0.9573194975f, -0.9557930148f, -0.9542403285f, -0.9526614813f,
-0.9510565163f, -0.9494254776f, -0.94776841f, -0.9460853588f, -0.9443763702f, -0.9426414911f, -0.940880769f, -0.9390942521f, -0.9372819895f, -0.9354440308f, -0.9335804265f, -0.9316912276f,
-0.9297764859f, -0.9278362539f, -0.9258705848f, -0.9238795325f, -0.9218631516f, -0.9198214973f, -0.9177546257f, -0.9156625933f, -0.9135454576f, -0.9114032766f, -0.909236109f, -0.9070440143f,
-0.9048270525f, -0.9025852843f, -0.9003187714f, -0.8980275758f, -0.8957117602f, -0.8933713883f, -0.8910065242f, -0.8886172327f, -0.8862035792f, -0.8837656301f, -0.8813034521f, -0.8788171127f,
-0.87630668f, -0.873772223f, -0.8712138111f, -0.8686315144f, -0.8660254038f, -0.8633955506f, -0.860742027f, -0.8580649057f, -0.8553642602f, -0.8526401644f, -0.849892693f, -0.8471219214f,
-0.8443279255f, -0.8415107819f, -0.8386705679f, -0.8358073614f, -0.8329212407f, -0.8300122851f, -0.8270805743f, -0.8241261886f, -0.8211492091f, -0.8181497174f, -0.8151277957f, -0.8120835269f,
-0.8090169944f, -0.8059282822f, -0.8028174752f, -0.7996846585f, -0.796529918f, -0.7933533403f, -0.7901550124f, -0.786935022f, -0.7836934573f, -0.7804304073f, -0.7771459615f, -0.7738402097f,
-0.7705132428f, -0.7671651518f, -0.7637960286f, -0.7604059656f, -0.7569950557f, -0.7535633923f, -0.7501110696f, -0.7466381823f, -0.7431448255f, -0.739631095f, -0.7360970871f, -0.7325428988f,
-0.7289686274f, -0.725374371f, -0.7217602281f, -0.7181262978f, -0.7144726796f, -0.7107994739f, -0.7071067812f, -0.7033947028f, -0.6996633405f, -0.6959127966f, -0.6921431739f, -0.6883545757f,
-0.6845471059f, -0.680720869f, -0.6768759697f, -0.6730125135f, -0.6691306064f, -0.6652303547f, -0.6613118653f, -0.6573752458f, -0.653420604f, -0.6494480483f, -0.6454576877f, -0.6414496316f,
-0.6374239897f, -0.6333808726f, -0.629320391f, -0.6252426563f, -0.6211477803f, -0.6170358751f, -0.6129070537f, -0.608761429f, -0.6045991149f, -0.6004202253f, -0.596224875f, -0.5920131788f,
-0.5877852523f, -0.5835412114f, -0.5792811723f, -0.575005252f, -0.5707135677f, -0.5664062369f, -0.5620833779f, -0.557745109f, -0.5533915492f, -0.549022818f, -0.544639035f, -0.5402403205f,
-0.535826795f, -0.5313985795f, -0.5269557955f, -0.5224985647f, -0.5180270094f, -0.5135412521f, -0.5090414158f, -0.5045276238f, -0.5f, -0.4954586684f, -0.4909037536f, -0.4863353804f,
-0.4817536741f, -0.4771587603f, -0.4725507649f, -0.4679298143f, -0.4632960351f, -0.4586495545f, -0.4539904997f, -0.4493189986f, -0.4446351792f, -0.4399391699f, -0.4352310994f, -0.4305110968f,
-0.4257792916f, -0.4210358134f, -0.4162807923f, -0.4115143586f, -0.4067366431f, -0.4019477767f, -0.3971478906f, -0.3923371166f, -0.3875155865f, -0.3826834324f, -0.3778407868f, -0.3729877826f,
-0.3681245527f, -0.3632512305f, -0.3583679495f, -0.3534748438f, -0.3485720473f, -0.3436596946f, -0.3387379202f, -0.3338068592f, -0.3288666467f, -0.3239174182f, -0.3189593093f, -0.313992456f,
-0.3090169944f, -0.3040330609f, -0.2990407923f, -0.2940403252f, -0.2890317969f, -0.2840153447f, -0.278991106f, -0.2739592187f, -0.2689198206f, -0.26387305f, -0.2588190451f, -0.2537579446f,
-0.2486898872f, -0.2436150118f, -0.2385334576f, -0.2334453639f, -0.2283508701f, -0.223250116f, -0.2181432414f, -0.2130303863f, -0.2079116908f, -0.2027872954f, -0.1976573404f, -0.1925219665f,
-0.1873813146f, -0.1822355255f, -0.1770847403f, -0.1719291003f, -0.1667687467f, -0.1616038211f, -0.156434465f, -0.1512608202f, -0.1460830286f, -0.1409012319f, -0.1357155724f, -0.1305261922f,
-0.1253332336f, -0.1201368388f, -0.1149371505f, -0.1097343111f, -0.1045284633f, -0.0993197497f, -0.0941083133f, -0.0888942969f, -0.0836778433f, -0.0784590957f, -0.0732381971f, -0.0680152907f,
-0.0627905195f, -0.057564027f, -0.0523359562f, -0.0471064507f, -0.0418756537f, -0.0366437087f, -0.0314107591f, -0.0261769483f, -0.0209424199f, -0.0157073173f, -0.0104717841f, -0.0052359638f,

};

//17 + 3 for the additive osc
#define WT_TOTAL_WAVETABLE_COUNT 20




#define WT_HZ 40.0f
#define WT_FRAMES_PER_CYCLE 1200
#define WT_SR 48000.0f
//#define WT_HZ_RECIP (1.0f/WT_HZ)

t_wavetable * g_wavetable_get(){
    t_wavetable * f_result;
    hpalloc(
        (void**)&f_result,
        sizeof(t_wavetable)
    );

    hpalloc(
        (void**)&f_result->wavetable,
        sizeof(SGFLT) * WT_FRAMES_PER_CYCLE
    );

    f_result->length = WT_FRAMES_PER_CYCLE;
    return f_result;
}

void v_wt_set_wavetable(
    t_wt_wavetables* a_wt,
    int a_index,
    SGFLT * a_arr,
    int a_count,
    pthread_spinlock_t * a_spinlock,
    int * a_reset_var
){
    //SGFLT * f_old = a_wt->tables[a_index]->wavetable;

    if(a_spinlock)
    {
        pthread_spin_lock(a_spinlock);
    }

    a_wt->tables[a_index]->wavetable = a_arr;
    a_wt->tables[a_index]->length = a_count;
    *a_reset_var = 1;

    if(a_spinlock)
    {
        pthread_spin_unlock(a_spinlock);
    }

    //Not doing this now because hpalloc's can't be free'd, the
    //leak shouldn't be significant unless somebody spends hours
    //tweaking a wavetable
    /*
    if(f_old)
    {
        free(f_old);
    }
    */
}

t_wt_wavetables* g_wt_wavetables_get(){
    int f_i = 0;
    t_wt_wavetables* f_result;
    hpalloc((void**)&f_result, (sizeof(t_wt_wavetables)));
    f_result->f_count = WT_TOTAL_WAVETABLE_COUNT;
    hpalloc(
        (void**)&f_result->tables,
        sizeof(t_wavetable) * WT_TOTAL_WAVETABLE_COUNT
    );
    f_result->tables[0] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE){
        f_result->tables[0]->wavetable[f_i] = plain_saw_array[f_i];
        ++f_i;
    }

    f_result->tables[1] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE){
        f_result->tables[1]->wavetable[f_i] = superbsaw_array[f_i];
        ++f_i;
    }


    f_result->tables[2] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE){
        f_result->tables[2]->wavetable[f_i] = viralsaw_array[f_i];
        ++f_i;
    }

    f_result->tables[3] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[3]->wavetable[f_i] = soft_saw_array[f_i];
        ++f_i;
    }


    f_result->tables[4] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[4]->wavetable[f_i] = mid_saw_array[f_i];
        ++f_i;
    }

    f_result->tables[5] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[5]->wavetable[f_i] = lush_saw_array[f_i];
        ++f_i;
    }

    f_result->tables[6] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[6]->wavetable[f_i] = evil_square_array[f_i];
        ++f_i;
    }

    f_result->tables[7] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[7]->wavetable[f_i] = punchy_square_array[f_i];
        ++f_i;
    }


    f_result->tables[8] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[8]->wavetable[f_i] = soft_square_array[f_i];
        ++f_i;
    }

    f_result->tables[9] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[9]->wavetable[f_i] = pink_glitch_array[f_i];
        ++f_i;
    }

    f_result->tables[10] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[10]->wavetable[f_i] = white_glitch_array[f_i];
        ++f_i;
    }

    f_result->tables[11] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[11]->wavetable[f_i] = acid_array[f_i];
        ++f_i;
    }

    f_result->tables[12] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[12]->wavetable[f_i] = screetch_array[f_i];
        ++f_i;
    }

    f_result->tables[13] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[13]->wavetable[f_i] = thick_bass_array[f_i];
        ++f_i;
    }

    f_result->tables[14] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[14]->wavetable[f_i] = rattler_array[f_i];
        ++f_i;
    }

    f_result->tables[15] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[15]->wavetable[f_i] = deep_saw_array[f_i];
        ++f_i;
    }

    f_result->tables[16] = g_wavetable_get();
    f_i = 0;
    while(f_i < WT_FRAMES_PER_CYCLE)
    {
        f_result->tables[16]->wavetable[f_i] = sine_array[f_i];
        ++f_i;
    }

    f_result->tables[17] = g_wavetable_get();
    f_result->tables[18] = g_wavetable_get();
    f_result->tables[19] = g_wavetable_get();

    f_result->tables[17]->length = 1024;
    f_result->tables[18]->length = 1024;
    f_result->tables[19]->length = 1024;

    f_i = 0;
    while(f_i < 1024)
    {
        f_result->tables[17]->wavetable[f_i] = 0.0f;
        f_result->tables[18]->wavetable[f_i] = 0.0f;
        f_result->tables[19]->wavetable[f_i] = 0.0f;
        ++f_i;
    }

    return f_result;
}

